Notebook com o carregamento dos dados brutos, realização do pré-processamento e treinamento dos modelos de ML
Bibliotecas e instalações¶
[1]:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import plotly.express as px
import plotly.graph_objects as go
from plotly.subplots import make_subplots
import pickle
seed = 10
[2]:
# Pré-Processamento
from sklearn.preprocessing import LabelEncoder, StandardScaler, MinMaxScaler, MaxAbsScaler, PowerTransformer, QuantileTransformer
from sklearn.model_selection import train_test_split
[3]:
# Classificação
from sklearn.decomposition import PCA
from imblearn.over_sampling import SMOTE
from imblearn.under_sampling import RandomUnderSampler
from sklearn.ensemble import RandomForestClassifier
import xgboost as xgb
from sklearn.preprocessing import MultiLabelBinarizer
from sklearn.multiclass import OneVsRestClassifier
from sklearn.metrics import plot_confusion_matrix
/usr/local/lib/python3.7/dist-packages/sklearn/externals/six.py:31: FutureWarning:
The module is deprecated in version 0.21 and will be removed in version 0.23 since we've dropped support for Python 2.7. Please rely on the official version of six (https://pypi.org/project/six/).
/usr/local/lib/python3.7/dist-packages/sklearn/utils/deprecation.py:144: FutureWarning:
The sklearn.neighbors.base module is deprecated in version 0.22 and will be removed in version 0.24. The corresponding classes / functions should instead be imported from sklearn.neighbors. Anything that cannot be imported from sklearn.neighbors is now part of the private API.
[4]:
# Regressão
from sklearn.metrics import mean_absolute_error, mean_squared_error
from sklearn.linear_model import LinearRegression
from sklearn.ensemble import RandomForestRegressor
Funções¶
Gerais¶
[5]:
def read_csv(path):
"""Read csv files
:param path str: path to the csv file.
:return: dataframe from the csv file.
:rtype: pd.DataFrame
"""
df = pd.read_csv(path)
print(df.shape)
return df
[6]:
def save_csv(df, path):
"""Save csv files
:param df pd.DataFrame: dataframe to be saved.
:param path str: path to save the csv file.
:return: no value
:rtype: none
"""
df.to_csv(path, encoding='utf-8', index=False)
print('Arquivo csv salvo com sucesso!')
[7]:
def get_dates_diff(df):
"""Get the difference, in days, between columns with dates
:param df pd.DataFrame: DataFrame to get the dates difference.
:return: DataFrame with dates difference in nine new columns
:rtype: pd.DataFrame
"""
df_aux = df.copy()
df_aux.dropna(subset=['DTTRAT','DTULTINFO'], inplace=True)
lista_datas = ['DTCONSULT', 'DTDIAG', 'DTTRAT', 'DTULTINFO', 'DTRECIDIVA']
for c in lista_datas:
if c == 'DTTRAT':
fmt = '%d/%m/%Y'
else:
fmt = '%Y-%m-%d'
df_aux[c] = pd.to_datetime(df_aux[c], format=fmt)
df_aux['delta_t1'] = (df_aux.DTDIAG - df_aux.DTCONSULT).dt.days
df_aux['delta_t2'] = (df_aux.DTTRAT - df_aux.DTDIAG).dt.days
df_aux['delta_t3'] = (df_aux.DTTRAT - df_aux.DTCONSULT).dt.days
df_aux['delta_t4'] = (df_aux.DTRECIDIVA - df_aux.DTCONSULT).dt.days
df_aux['delta_t5'] = (df_aux.DTRECIDIVA - df_aux.DTDIAG).dt.days
df_aux['delta_t6'] = (df_aux.DTRECIDIVA - df_aux.DTTRAT).dt.days
df_aux['delta_t7'] = (df_aux.DTULTINFO - df_aux.DTCONSULT).dt.days
df_aux['delta_t8'] = (df_aux.DTULTINFO - df_aux.DTDIAG).dt.days
df_aux['delta_t9'] = (df_aux.DTULTINFO - df_aux.DTTRAT).dt.days
return df_aux
[8]:
def get_labels(df):
"""Create death labels acording to the last information year.
:param df pd.DataFrame: dataframe to be processed.
:return: DataFrame with the new labels
:rtype: pd.DataFrame
"""
df_aux = df.copy()
# Label de óbito
df_aux['ob'] = 0
# Label de óbito de acordo com o ano
df_aux['ano_ob'] = 0
for index, row in df_aux.iterrows():
if row.ULTINFO > 2:
df_aux.loc[index, 'ob'] = 1
if row.delta_t8 < 365:
df_aux.loc[index, 'ano_ob'] = 1
elif row.delta_t8 < 2*365:
df_aux.loc[index, 'ano_ob'] = 2
elif row.delta_t8 < 3*365:
df_aux.loc[index, 'ano_ob'] = 3
elif row.delta_t8 < 4*365:
df_aux.loc[index, 'ano_ob'] = 4
elif row.delta_t8 < 5*365:
df_aux.loc[index, 'ano_ob'] = 5
else:
df_aux.loc[index, 'ano_ob'] = 6
return df_aux
[9]:
def get_label_rec(df):
"""Create the labels analyzing whether there was recurrence.
:param df pd.DataFrame: dataframe to be processed.
:return: DataFrame with the new labels
:rtype: pd.DataFrame
"""
df_aux = df.copy()
df_aux['ob_com_rec'] = 0
df_aux['ob_sem_rec'] = 0
df_aux['vivo_com_rec'] = 0
df_aux['vivo_sem_rec'] = 0
for i, row in df.iterrows():
if row['ob'] == 1:
if row.RECNENHUM == 1:
df_aux.loc[i, 'ob_sem_rec'] = 1
else:
df_aux.loc[i, 'ob_com_rec'] = 1
else:
if row.RECNENHUM == 1:
df_aux.loc[i, 'vivo_sem_rec'] = 1
else:
df_aux.loc[i, 'vivo_com_rec'] = 1
return df_aux
Modelos¶
[10]:
def variables_preprocessing(df):
"""Do some preprocessing on the DataFrame like strings splits, fill NaN values,
replace values and drop some columns.
:param df pd.DataFrame: DataFrame to be preprocessed.
:return: DataFrame after be preprocessed and get some columns removed
:rtype: pd.DataFrame
"""
df_aux = df.copy()
no_info = '**Sem informação**'
# DRS
DRS_expand = df_aux.DRS.str.split(' ', expand=True)
df_aux['DRS'] = DRS_expand[1]
df_aux.DRS = df_aux.DRS.fillna(0).astype('int64')
# META
df_aux.META01.fillna(no_info, inplace=True)
df_aux.META02.fillna(no_info, inplace=True)
df_aux.META03.fillna(no_info, inplace=True)
df_aux.META04.fillna(no_info, inplace=True)
# REC
df_aux.REC01.fillna(no_info, inplace=True)
df_aux.REC02.fillna(no_info, inplace=True)
df_aux.REC03.fillna(no_info, inplace=True)
df_aux.REC04.fillna(no_info, inplace=True)
# PT
df_aux.PT = df_aux.PT.replace([1.0],'1')
df_aux.PT = df_aux.PT.str.upper()
df_aux.PT.fillna(no_info, inplace=True)
# PN
df_aux.PN = df_aux.PN.replace([0.0],'0')
df_aux.PN = df_aux.PN.str.upper()
df_aux.PN = df_aux.PN.replace(['1BI','IBII','O'],['1B1','1B2','0'])
df_aux.PN.fillna(no_info, inplace=True)
# PM
df_aux.PM = df_aux.PM.replace([0.0],'0')
df_aux.PM.fillna(no_info, inplace=True)
# CICI
df_aux.CICI.fillna(no_info, inplace=True)
# CICIGRUP
CICIGRUP_expand = df_aux.CICIGRUP.str.split(' ', expand=True)
df_aux['CICIGRUP'] = CICIGRUP_expand[0]
df_aux.CICIGRUP.fillna(no_info, inplace=True)
# Colunas com valores únicos
col = df_aux.columns
drop_cols = ['S','QUIMIOANT','HORMOANT','TMOANT','IMUNOANT','OUTROANT','ERRO',
'CIDO', 'UFNASC','CIDADE','DESCTOPO','DESCMORFO','DSCCIDO','CICISUBGRU',
'INSTORIG', 'OUTRACLA']
col = col.drop(drop_cols)
return df_aux[col]
[11]:
def get_train_test(df, drop_cols, label, test_size=0.25, random_state=10):
"""Get features and label, and then returns train and test dataframes.
:param df pd.DataFrame: dataframe that will be splitted.
:param drop_cols list: columns to be removed from the DataFrame.
:param label str: name of the label column.
:param test_size float: size of test (default=0.25).
:param random_state int: value for train_test_split random_state (default=10).
:return: train and test DataFrames, X_train, X_test, y_train, y_test
:rtype: pd.DataFrame
"""
df_aux = df.copy()
cols = df_aux.columns.drop(drop_cols)
lb = df_aux[label].copy()
cols = cols.drop(label)
feat = df_aux[cols]
X_train, X_test, y_train, y_test = train_test_split(feat, lb, test_size=test_size, random_state=random_state)
print(f'X_train = {X_train.shape}, X_test = {X_test.shape}')
print(f'y_train = {y_train.shape}, y_test = {y_test.shape}')
return X_train, X_test, y_train, y_test
[12]:
def train_preprocessing(df, normalizer='StandardScaler', pca=False, pca_components=None, random_state=10):
"""Preprocessing the train dataset.
:param df pd.DataFrame: DataFrame to be preprocessed.
:param normalizer str: which normalizer to be fitted to the data (default='StandardScaler').
:param pca bool: if want to use PCA components set True (default=False).
:param pca_components int: number of PCA components (default=None).
:param random_state int: value for pca random_state (default=10).
:return df: preprocessed train DataFrame
:rtype: pd.DataFrame
:return enc: trained LabelEncoder
:rtype: dict
:return norm: trained normalizer
:rtype: object
:return pca if param pca=True: trained PCA
:rtype: object
"""
df_aux = df.copy()
list_categorical = df_aux.select_dtypes(include='object').columns
enc = dict()
for col in list_categorical:
enc[col] = LabelEncoder()
df_aux[col] = enc[col].fit_transform(df_aux[col])
if normalizer == 'StandardScaler':
norm = StandardScaler()
elif normalizer == 'MinMaxScaler':
norm = MinMaxScaler()
elif normalizer == 'MaxAbsScaler':
norm = MaxAbsScaler()
elif normalizer == 'PowerTransformer':
norm = PowerTransformer()
elif normalizer == 'QuantileTransformer':
norm = QuantileTransformer(output_distribution='normal')
df_aux = norm.fit_transform(df_aux)
if pca:
pca = PCA(pca_components, random_state=random_state)
df_aux = pca.fit_transform(df_aux)
return df_aux, enc, norm, pca
else:
return df_aux, enc, norm
[13]:
def test_preprocessing(df, enc, norm, pca=None):
"""Preprocessing the test dataset.
:param df pd.DataFrame: DataFrame to be preprocessed.
:param enc: trained encoder with the categorical features.
:param norm: trained normalizer.
:param pca: trained PCA (default=None).
:return: preprocessed test DataFrame
:rtype: pd.DataFrame
"""
df_aux = df.copy()
df_aux.fillna(0, inplace=True)
list_categorical = df_aux.select_dtypes(include='object').columns
for col in list_categorical:
df_aux.loc[~df_aux[col].isin(enc[col].classes_), col] = -1
df_aux.loc[df_aux[col].isin(enc[col].classes_), col] = enc[col].transform(df_aux[col][df_aux[col].isin(enc[col].classes_)])
df_aux = norm.transform(df_aux)
if pca != None:
df_aux = pca.transform(df_aux)
return df_aux
[14]:
def plot_feat_importances(model, X_test, n=25):
"""Shows the features importances for the model.
:param model: machine learning model.
:param X_test pd.DataFrame: X_test for the model, before preprocessing.
:param n int: number of features to be shown (default=25).
:return: no value
:rtype: none
"""
feat_import = pd.Series(model.feature_importances_, index=X_test.columns)
feat_import.nlargest(n).plot(kind='barh', figsize=(10,10))
plt.show()
[15]:
def validate_regression(X_test, model, y_test):
"""Validate the regression.
:param X_test pd.DataFrame: values to be validated
:param model: trained machine learning model
:param y_test array-like: true labels for the regression
:return: DataFrame comparing the real and predicted values
:rtype: pd.DataFrame
"""
y_pred = model.predict(X_test)
df = pd.DataFrame({'Atual': y_test, 'Predito': y_pred})
print(f'Mean Absolute Error: {mean_absolute_error(y_test, y_pred):.3f}')
print(f'Mean Squared Error: {mean_squared_error(y_test, y_pred):.3f}')
print(f'Root Mean Squared Error: {np.sqrt(mean_squared_error(y_test, y_pred)):.3f}')
print(f'Score: {model.score(X_test, y_test):.3f}')
return df
Dicionário de variáveis¶
ESCOLARI: Código para escolaridade do paciente (int = 1).
1 – ANALFABETO
2 – ENS. FUND. INCOMPLETO
3 – ENS. FUND. COMPLETO
4 – ENSINO MÉDIO
5 – SUPERIOR
9 – IGNORADA
IDADE: Idade do paciente (int = 3).
SEXO: Sexo do paciente (int = 1).
1 – MASCULINO
2 – FEMININO
- UFNASC: UF de nascimento (char = 2). Outras opções: SI - Sem informação; OP - Outro país.
UFRESID: UF de residência (char = 2). Outras opções: OP - Outro país.
IBGE: Código da cidade de residência do paciente segundo IBGE com digito verificador (char = 7).
CIDADE: Cidade de residência do paciente (char = 200).
CATEATEND: Categoria de atendimento ao diagnóstico (int = 1).
1 - CONVENIO
2 - SUS
3 – PARTICULAR
9 – SEM INFORMAÇÃO
DTCONSULT: Data da 1ª consulta (date = 10). Formato: DD/MM/YYYY
CLINICA: Código da clinica (int = 2).
1 – ALERGIA/IMUNOLOGIA
2 – CIRURGIA CARDIACA
3 – CIRURGIA CABEÇA E PESCOÇO
4 – CIRURGIA GERAL
5 – CIRURGIA PEDIATRICA
6 – CIRURGIA PLASTICA
7 – CIRURGIA TORAXICA
8 – CIRURGIA VASCULAR
9 – CLINICA MEDICA
10 – DERMATOLOGIA
11 – ENDOCRINOLOGIA
12 – GASTROCIRURGIA
13 – GASTROENTEROLOGIA
14 – GERIATRIA
15 – GINECOLOGIA
16 – GINECOLOGIA / OBSTETRICIA
17 – HEMATOLOGIA
18 – INFECTOLOGIA
19 – NEFROLOGIA
20 – NEUROCIRURGIA
21 – NEUROLOGIA
22 – OFTALMOLOGIA
23 – ONCOLOGIA CIRURGICA
24 – ONCOLOGIA CLINICA
25 – ONCOLOGIA PEDIATRICA
26 – ORTOPEDIA
27 – OTORRINOLARINGOLOGIA
28 – PEDIATRIA
29 – PNEUMOLOGIA
30 – PROCTOLOGIA
31 – RADIOTERAPIA
32 – UROLOGIA
33 – MASTOLOGIA
34 – ONCOLOGIA CUTANEA
35 – CIRURGIA PELVICA
36 – CIRURGIA ABDOMINAL
37 – ODONTOLOGIA
38 – TRANSPLANTE HEPATICO
99 – IGNORADO
DIAGPREV: Diagnóstico e tratamento anterior (int = 1).
1 – SEM DIAGNÓSTICO / SEM TRATAMENTO
2 – COM DIAGNÓSTICO / SEM TRATAMENTO
3 – COM DIAGNÓSTICO / COM TRATAMENTO
4 – OUTROS- DTDIAG: Data do diagnóstico (date = 10). Formato: DD/MM/YYYY
BASEDIAG: Código da base do diagnóstico (int = 1).
1 – EXAME CLINICO
2 – RECURSOS AUXILIARES NÃO MICROSCÓPICOS
3 – CONFIRMAÇÃO MICROSCÓPICA
4 – SEM INFORMAÇÃO- TOPO: Código da topografia (char = 4). Formato: C999
- TOPOGRUP: Grupo da topografia (char = 3). Formato: C99
DESCTOPO: Descrição da Topografia (char = 80).
MORFO: Código da morfologia (char = 5). Formato: 99999
DESCMORFO: Descrição da morfologia (char = 80).
EC: Estádio clínico (char = 5).
ECGRUP: Grupo do estadiamento clínico (char = 3).
0 - Tumores primários, classificados como in situ
I - Tumores localizados
II - Tumores com envolvimento regional por extensão direta
III - Tumores com envolvimento regional de linfonodos
IV - Tumores com metástase à distância
X - Para tumores não avaliados pelo profissional responsável ou sem informação sobre estadiamento anotada no prontuário
Y - Para tumores em que não se aplica a classificação TNM. São os tumores não sólidos (por exemplo, as leucemias)
T: Classificação TNM - T (char = 5).
- N: Classificação TNM - N (char = 5).
- M: Classificação TNM - M (char = 3).
PT: Estadiamento pós cirúrgico (char = 5).
- PN: Estadiamento pós cirúrgico (char = 5).
- PM: Estadiamento pós cirúrgico (char = 3).
S: Classificação TNM - S (int = 1). Domínio: 0; 1; 2; 3; 8 – NÃO SE APLICA; 9 – X
G: Classificação TNM – G (Grau) (char = 5).
Domínio (exceto C40, C41, C381, C382, C383, C47, C48 e C49): 0; 1; 2; 3; 4; 8 – NÃO SE APLICA; 9 – X
Domínio (somente C40, C41, C381, C382, C383, C47, C48 e C49): ALTO; BAIXO; 8 – NÃO SE APLICA; 9 – X
LOCALTNM: Classificação TNM - Localização (int = 1).
1 – SUPERIOR
2 – MEDIO
3 – INFERIOR
8 – NÃO SE APLICA
9 – X
IDMITOTIC: Classificação TNM – Índice Mitótico (int = 1).
1 – ALTA
2 – BAIXA
8 – NÃO SE APLICA
9 – X
PSA: Classificação TNM - PSA (int = 1).
1 – MENOR QUE 10
2 – MAIOR OU IGUAL A 10 E MENOR QUE 20
3 – MAIOR OU IGUAL A 20
8 – NÃO SE APLICA
9 – X
GLEASON: Classificação TNM - Gleason (int = 1).
1 – MENOR OU IGUAL A 6
2 – IGUAL A 7
3 – MAIOR OU IGUAL A 8
8 – NÃO SE APLICA
9 – X
OUTRACLA: Outra classificação de estadiamento (char = 20).
META01: Metástase (char = 3). Formato: C99
META02: Metástase (char = 3). Formato: C99
META03: Metástase (char = 3). Formato: C99
META04: Metástase (char = 3). Formato: C99
- DTTRAT: Data de inicio do tratamento (date = 10). Formato: DD/MM/YYYY
NAOTRAT: Código da razão para não realização do tratamento (int = 1).
1 – RECUSA DO TRATAMENTO
2 – DOENÇA AVANÇADA, FALTA DE CONDIÇÕES CLINICAS
3 – OUTRAS DOENÇAS ASSOCIADAS
4 – ABANDONO DE TRATAMENTO
5 – OBITO POR CANCER
6 – OBITO POR OUTRAS CAUSAS, SOE
7 – OUTRAS
8 – NÃO SE APLICA (CASO TENHA TRATAMENTO)
9 – SEM INFORMAÇÃOTRATAMENTO: Código de combinação dos tratamentos realizados (char = 1).
A – Cirurgia
B – Radioterapia
C – Quimioterapia
D – Cirurgia + Radioterapia
E – Cirurgia + Quimioterapia
F – Radioterapia + Quimioterapia
G – Cirurgia + Radio + Quimio
H – Cirurgia + Radio + Quimio + Hormonio
I – Outras combinações de tratamento
J – Nenhum tratamento realizadoTRATHOSP: Código de combinação dos tratamentos realizados no hospital (char = 1).
A – Cirurgia
B – Radioterapia
C – Quimioterapia
D – Cirurgia + Radioterapia
E – Cirurgia + Quimioterapia
F – Radioterapia + Quimioterapia
G – Cirurgia + Radio + Quimio
H – Cirurgia + Radio + Quimio + Hormonio
I – Outras combinações de tratamento
J – Nenhum tratamento realizadoTRATFANTES: Código de combinação dos tratamentos realizados antes/durante admissão fora do hospital (char = 1).
A – Cirurgia
B – Radioterapia
C – Quimioterapia
D – Cirurgia + Radioterapia
E – Cirurgia + Quimioterapia
F – Radioterapia + Quimioterapia
G – Cirurgia + Radio + Quimio
H – Cirurgia + Radio + Quimio + Hormonio
I – Outras combinações de tratamento
J – Nenhum tratamento realizado
K – Sem informação
TRATFAPOS: Código de combinação dos tratamentos realizados após admissão fora do hospital (char = 1).
A – Cirurgia
B – Radioterapia
C – Quimioterapia
D – Cirurgia + Radioterapia
E – Cirurgia + Quimioterapia
F – Radioterapia + Quimioterapia
G – Cirurgia + Radio + Quimio
H – Cirurgia + Radio + Quimio + Hormonio
I – Outras combinações de tratamento
J – Nenhum tratamento realizado
K – Sem informação
NENHUM: Tratamento recebido no hospital = nenhum (int = 1). 0 – NÃO; 1 – SIM
CIRURGIA: Tratamento recebido no hospital = cirurgia (int = 1). 0 – NÃO; 1 – SIM
RADIO: Tratamento recebido no hospital = radioterapia (int = 1). 0 – NÃO; 1 – SIM
QUIMIO: Tratamento recebido no hospital = quimioterapia (int = 1). 0 – NÃO; 1 – SIM
HORMONIO: Tratamento recebido no hospital = hormonioterapia (int = 1). 0 – NÃO; 1 – SIM
TMO: Tratamento recebido no hospital = tmo (int = 1). 0 – NÃO; 1 – SIM
IMUNO: Tratamento recebido no hospital = imunoterapia (int = 1). 0 – NÃO; 1 – SIM
OUTROS: Tratamento recebido no hospital = outros (int = 1). 0 – NÃO; 1 – SIM
NENHUMANT: Tratamento recebido fora do hospital e antes da admissão = nenhum (int = 1). 0 – NÃO; 1 – SIM
CIRURANT: Tratamento recebido fora do hospital e antes da admissão = cirurgia (int = 1). 0 – NÃO; 1 – SIM
RADIOANT: Tratamento recebido fora do hospital e antes da admissão = radioterapia (int = 1). 0 – NÃO; 1 – SIM
QUIMIOANT: Tratamento recebido fora do hospital e antes da admissão = quimioterapia (int = 1). 0 – NÃO; 1 – SIM
HORMOANT: Tratamento recebido fora do hospital e antes da admissão = hormonioterapia (int = 1). 0 – NÃO; 1 – SIM
TMOANT: Tratamento recebido fora do hospital e antes da admissão = tmo (int = 1). 0 – NÃO; 1 – SIM
IMUNOANT: Tratamento recebido fora do hospital e antes da admissão = imunoterapia (int = 1). 0 – NÃO; 1 – SIM
OUTROANT: Tratamento recebido fora do hospital e antes da admissão = outros (int = 1). 0 – NÃO; 1 – SIM
NENHUMAPOS: Tratamento recebido fora do hospital e durante/após admissão = nenhum (int = 1). 0 – NÃO; 1 – SIM
CIRURAPOS: Tratamento recebido fora do hospital e durante/após admissão = cirurgia (int = 1). 0 – NÃO; 1 – SIM
RADIOAPOS: Tratamento recebido fora do hospital e durante/após admissão = radioterapia (int = 1). 0 – NÃO; 1 – SIM
- QUIMIOAPOS: Tratamento recebido fora do hospital e durante/após admissão = quimioterapia (int = 1). 0 – NÃO; 1 – SIM
- HORMOAPOS: Tratamento recebido fora do hospital e durante/após admissão = hormonioterapia (int = 1). 0 – NÃO; 1 – SIM
- TMOAPOS: Tratamento recebido fora do hospital e durante/após admissão = tmo (int = 1). 0 – NÃO; 1 – SIM
IMUNOAPOS: Tratamento recebido fora do hospital e durante/após admissão = imunoterapia (int = 1). 0 – NÃO; 1 – SIM
OUTROAPOS: Tratamento recebido fora do hospital e durante/após admissão = outros (int = 1). 0 – NÃO; 1 – SIM
DTULTINFO: Data da última informação do paciente (date = 10). Formato: DD/MM/YYYY
ULTINFO: Última informação sobre o paciente (int = 1).
1 – VIVO, COM CÂNCER
2 – VIVO, SOE
3 – OBITO POR CANCER
4 – OBITO POR OUTRAS CAUSAS, SOE
CONSDIAG: Diferença em dias entre as datas de consulta o diagnóstico (num = dias).
- TRATCONS: Diferença em dias entre as datas de consulta e tratamento (num = dias).
DIAGTRAT: Diferença em dias entre as datas de tratamento e diagnóstico (num = dias).
ANODIAG: Ano de diagnóstico (int = 4). Formato: 9999
- CICI: Tumor infantil (char = 5).
- CICIGRUP: Tumor infantil – Grupo (char = 80).
CICISUBGRU: Tumor infantil – Sub grupo (char = 80).
FAIXAETAR: Faixa etária do paciente (char = 5).
LATERALI: Lateralidade (int = 1).
1 – DIREITA
2 – ESQUERDA
3 – BILATERAL
8 - NÃO SE APLICA
INSTORIG: Instituição de origem (char = 200). Obrigatório somente se DIAGPREV = 03 – COM DIAGNÓSTICO / COM TRATAMENTO
DRS: Departamentos Regionais de Saúde (char = 200).
- RRAS: RRAS (char = 200).
PERDASEG: Perda de seguimento (int = 1).
0 – Não
1 – Sim
8 – Não se aplica (excluído do cálculo para o indicador perda de seguimento)ERRO: Admissão com erro (int = 1). 0 – Sem; 1 – Com
- DTRECIDIVA: Data da última ocorrência de recidiva (date = 10). Formato: DD/MM/YYYY
RECNENHUM: Sem recidiva (int = 1). 0 - Não; 1 - Sim
- RECLOCAL: Recidiva local (int = 1). 0 - Não; 1 - Sim
RECREGIO: Recidiva regional (int = 1). 0 - Não; 1 - Sim
- RECDIST: Recidiva a distância / metástase (int = 1). 0 - Não; 1 - Sim
REC01: Local da recidiva/metástase (char = 3). Formato: C99
- REC02: Local da recidiva/metástase (char = 3). Formato: C99
REC03: Local da recidiva/metástase (char = 3). Formato: C99
- REC04: Local da recidiva/metástase (char = 3). Formato: C99
IBGEATEN: Código IBGE da instituição (int = 7).
- CIDO: Código da morfologia 3ª Edição (int = 5). Formato: 99999
DSCCIDO: Descrição da morfologia 3ª Edição (char = 89).
Leitura dos dados¶
[16]:
data = read_csv('/content/drive/MyDrive/Trabalho/Cancer/Datasets/pacigeral.csv')
/usr/local/lib/python3.7/dist-packages/IPython/core/interactiveshell.py:2822: DtypeWarning:
Columns (23,24,25,32,36,78,91) have mixed types.Specify dtype option on import or set low_memory=False.
(943660, 95)
Análise dos dados¶
Informações¶
[17]:
data.head()
[17]:
| ESCOLARI | IDADE | SEXO | UFNASC | UFRESID | IBGE | CIDADE | CATEATEND | DTCONSULT | CLINICA | DIAGPREV | DTDIAG | BASEDIAG | TOPO | TOPOGRUP | DESCTOPO | MORFO | DESCMORFO | EC | ECGRUP | T | N | M | PT | PN | PM | S | G | LOCALTNM | IDMITOTIC | PSA | GLEASON | OUTRACLA | META01 | META02 | META03 | META04 | DTTRAT | NAOTRAT | TRATAMENTO | ... | HORMOANT | TMOANT | IMUNOANT | OUTROANT | NENHUMAPOS | CIRURAPOS | RADIOAPOS | QUIMIOAPOS | HORMOAPOS | TMOAPOS | IMUNOAPOS | OUTROAPOS | DTULTINFO | ULTINFO | CONSDIAG | TRATCONS | DIAGTRAT | ANODIAG | CICI | CICIGRUP | CICISUBGRU | FAIXAETAR | LATERALI | INSTORIG | DRS | RRAS | PERDASEG | ERRO | DTRECIDIVA | RECNENHUM | RECLOCAL | RECREGIO | RECDIST | REC01 | REC02 | REC03 | REC04 | IBGEATEN | CIDO | DSCCIDO | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 4 | 40.0 | 2 | SP | SP | 3530805 | MOGIMIRIM | 9 | 2000-01-03 | 15 | 1 | 2000-01-10 | 3 | C539 | C53 | COLO DO UTERO | 81402 | ADENOCARCINOMA IN SITU SOE | 0 | 0 | X | X | 0 | IS | 0 | 0 | 8 | 8 | 8 | 8 | 8 | 8 | NaN | NaN | NaN | NaN | NaN | 07/04/2000 | 8 | A | ... | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2016-09-13 | 2 | 7 | 95.0 | 88.0 | 2000 | NaN | NaN | NaN | 40-49 | 8 | NaN | DRS 14 SĂO JOĂO DA BOA VISTA | 15 | 1 | 0 | NaN | 1 | 0 | 0 | 0 | NaN | NaN | NaN | NaN | 3509502 | 81402.0 | ADENOCARCINOMA IN SITU SOE |
| 1 | 9 | 45.0 | 2 | RJ | SP | 3509502 | CAMPINAS | 9 | 2000-01-05 | 15 | 1 | 2000-01-17 | 3 | C539 | C53 | COLO DO UTERO | 80703 | CARCINOMA ESCAMOCELULAR SOE | IIIB | III | X | X | 0 | X | X | X | 8 | 8 | 8 | 8 | 8 | 8 | NaN | NaN | NaN | NaN | NaN | 20/01/2000 | 8 | F | ... | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2002-08-25 | 3 | 12 | 15.0 | 3.0 | 2000 | NaN | NaN | NaN | 40-49 | 8 | NaN | DRS 07 CAMPINAS | 15 | 0 | 0 | NaN | 1 | 0 | 0 | 0 | NaN | NaN | NaN | NaN | 3509502 | 80703.0 | CARCINOMA ESCAMOCELULAR SOE |
| 2 | 2 | 63.0 | 2 | MG | SP | 3509502 | CAMPINAS | 9 | 2000-01-19 | 15 | 1 | 2000-01-25 | 3 | C539 | C53 | COLO DO UTERO | 80703 | CARCINOMA ESCAMOCELULAR SOE | IIIB | III | X | X | 0 | X | X | X | 8 | 8 | 8 | 8 | 8 | 8 | NaN | NaN | NaN | NaN | NaN | 03/02/2000 | 8 | B | ... | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2001-03-20 | 3 | 6 | 15.0 | 9.0 | 2000 | NaN | NaN | NaN | 60-69 | 8 | NaN | DRS 07 CAMPINAS | 15 | 0 | 0 | NaN | 1 | 0 | 0 | 0 | NaN | NaN | NaN | NaN | 3509502 | 80703.0 | CARCINOMA ESCAMOCELULAR SOE |
| 3 | 9 | 64.0 | 2 | SP | SP | 3545803 | SANTA BARBARA D OESTE | 9 | 2000-01-28 | 15 | 1 | 2000-02-03 | 3 | C539 | C53 | COLO DO UTERO | 80703 | CARCINOMA ESCAMOCELULAR SOE | IIIB | III | X | X | 0 | X | X | X | 8 | 8 | 8 | 8 | 8 | 8 | NaN | NaN | NaN | NaN | NaN | 01/03/2000 | 8 | B | ... | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2002-07-15 | 3 | 6 | 33.0 | 27.0 | 2000 | NaN | NaN | NaN | 60-69 | 8 | NaN | DRS 07 CAMPINAS | 15 | 0 | 0 | NaN | 1 | 0 | 0 | 0 | NaN | NaN | NaN | NaN | 3509502 | 80703.0 | CARCINOMA ESCAMOCELULAR SOE |
| 4 | 1 | 48.0 | 2 | SP | SP | 3530805 | MOGIMIRIM | 9 | 2000-01-04 | 15 | 2 | 2000-01-04 | 3 | C539 | C53 | COLO DO UTERO | 80703 | CARCINOMA ESCAMOCELULAR SOE | IIIB | III | X | X | 0 | X | X | X | 8 | 8 | 8 | 8 | 8 | 8 | NaN | NaN | NaN | NaN | NaN | 15/05/2000 | 8 | B | ... | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2016-03-10 | 2 | 0 | 132.0 | 132.0 | 2000 | NaN | NaN | NaN | 40-49 | 8 | NaN | DRS 14 SĂO JOĂO DA BOA VISTA | 15 | 1 | 0 | NaN | 1 | 0 | 0 | 0 | NaN | NaN | NaN | NaN | 3509502 | 80703.0 | CARCINOMA ESCAMOCELULAR SOE |
5 rows × 95 columns
[18]:
data.shape
[18]:
(943660, 95)
[19]:
data.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 943660 entries, 0 to 943659
Data columns (total 95 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 ESCOLARI 943660 non-null int64
1 IDADE 943659 non-null float64
2 SEXO 943660 non-null int64
3 UFNASC 943660 non-null object
4 UFRESID 943660 non-null object
5 IBGE 943660 non-null int64
6 CIDADE 943660 non-null object
7 CATEATEND 943660 non-null int64
8 DTCONSULT 943660 non-null object
9 CLINICA 943660 non-null int64
10 DIAGPREV 943660 non-null int64
11 DTDIAG 943660 non-null object
12 BASEDIAG 943660 non-null int64
13 TOPO 943660 non-null object
14 TOPOGRUP 943660 non-null object
15 DESCTOPO 943660 non-null object
16 MORFO 943660 non-null int64
17 DESCMORFO 943657 non-null object
18 EC 943660 non-null object
19 ECGRUP 943660 non-null object
20 T 943660 non-null object
21 N 943660 non-null object
22 M 943660 non-null object
23 PT 423355 non-null object
24 PN 418790 non-null object
25 PM 396734 non-null object
26 S 943660 non-null int64
27 G 943660 non-null int64
28 LOCALTNM 943660 non-null int64
29 IDMITOTIC 943660 non-null int64
30 PSA 943660 non-null int64
31 GLEASON 943660 non-null int64
32 OUTRACLA 60799 non-null object
33 META01 123918 non-null object
34 META02 37602 non-null object
35 META03 12035 non-null object
36 META04 3434 non-null object
37 DTTRAT 868764 non-null object
38 NAOTRAT 943660 non-null int64
39 TRATAMENTO 943660 non-null object
40 TRATHOSP 943660 non-null object
41 TRATFANTES 943660 non-null object
42 TRATFAPOS 943660 non-null object
43 NENHUM 943660 non-null int64
44 CIRURGIA 943660 non-null int64
45 RADIO 943660 non-null int64
46 QUIMIO 943660 non-null int64
47 HORMONIO 943660 non-null int64
48 TMO 943660 non-null int64
49 IMUNO 943660 non-null int64
50 OUTROS 943660 non-null int64
51 NENHUMANT 943660 non-null int64
52 CIRURANT 943660 non-null int64
53 RADIOANT 943660 non-null int64
54 QUIMIOANT 943660 non-null int64
55 HORMOANT 943660 non-null int64
56 TMOANT 943660 non-null int64
57 IMUNOANT 943660 non-null int64
58 OUTROANT 943660 non-null int64
59 NENHUMAPOS 943660 non-null int64
60 CIRURAPOS 943660 non-null int64
61 RADIOAPOS 943660 non-null int64
62 QUIMIOAPOS 943660 non-null int64
63 HORMOAPOS 943660 non-null int64
64 TMOAPOS 943660 non-null int64
65 IMUNOAPOS 943660 non-null int64
66 OUTROAPOS 943660 non-null int64
67 DTULTINFO 943615 non-null object
68 ULTINFO 943660 non-null int64
69 CONSDIAG 943660 non-null int64
70 TRATCONS 868764 non-null float64
71 DIAGTRAT 868764 non-null float64
72 ANODIAG 943660 non-null int64
73 CICI 25549 non-null object
74 CICIGRUP 25549 non-null object
75 CICISUBGRU 25549 non-null object
76 FAIXAETAR 943660 non-null object
77 LATERALI 943660 non-null int64
78 INSTORIG 461 non-null object
79 DRS 872685 non-null object
80 RRAS 943660 non-null int64
81 PERDASEG 943660 non-null int64
82 ERRO 943660 non-null int64
83 DTRECIDIVA 94900 non-null object
84 RECNENHUM 943660 non-null int64
85 RECLOCAL 943660 non-null int64
86 RECREGIO 943660 non-null int64
87 RECDIST 943660 non-null int64
88 REC01 59209 non-null object
89 REC02 16831 non-null object
90 REC03 5284 non-null object
91 REC04 1421 non-null object
92 IBGEATEN 943660 non-null int64
93 CIDO 943631 non-null float64
94 DSCCIDO 943631 non-null object
dtypes: float64(4), int64(51), object(40)
memory usage: 684.0+ MB
[20]:
data.dtypes[:45]
[20]:
ESCOLARI int64
IDADE float64
SEXO int64
UFNASC object
UFRESID object
IBGE int64
CIDADE object
CATEATEND int64
DTCONSULT object
CLINICA int64
DIAGPREV int64
DTDIAG object
BASEDIAG int64
TOPO object
TOPOGRUP object
DESCTOPO object
MORFO int64
DESCMORFO object
EC object
ECGRUP object
T object
N object
M object
PT object
PN object
PM object
S int64
G int64
LOCALTNM int64
IDMITOTIC int64
PSA int64
GLEASON int64
OUTRACLA object
META01 object
META02 object
META03 object
META04 object
DTTRAT object
NAOTRAT int64
TRATAMENTO object
TRATHOSP object
TRATFANTES object
TRATFAPOS object
NENHUM int64
CIRURGIA int64
dtype: object
[21]:
data.dtypes[46:]
[21]:
QUIMIO int64
HORMONIO int64
TMO int64
IMUNO int64
OUTROS int64
NENHUMANT int64
CIRURANT int64
RADIOANT int64
QUIMIOANT int64
HORMOANT int64
TMOANT int64
IMUNOANT int64
OUTROANT int64
NENHUMAPOS int64
CIRURAPOS int64
RADIOAPOS int64
QUIMIOAPOS int64
HORMOAPOS int64
TMOAPOS int64
IMUNOAPOS int64
OUTROAPOS int64
DTULTINFO object
ULTINFO int64
CONSDIAG int64
TRATCONS float64
DIAGTRAT float64
ANODIAG int64
CICI object
CICIGRUP object
CICISUBGRU object
FAIXAETAR object
LATERALI int64
INSTORIG object
DRS object
RRAS int64
PERDASEG int64
ERRO int64
DTRECIDIVA object
RECNENHUM int64
RECLOCAL int64
RECREGIO int64
RECDIST int64
REC01 object
REC02 object
REC03 object
REC04 object
IBGEATEN int64
CIDO float64
DSCCIDO object
dtype: object
[22]:
data.describe()
[22]:
| ESCOLARI | IDADE | SEXO | IBGE | CATEATEND | CLINICA | DIAGPREV | BASEDIAG | MORFO | S | G | LOCALTNM | IDMITOTIC | PSA | GLEASON | NAOTRAT | NENHUM | CIRURGIA | RADIO | QUIMIO | HORMONIO | TMO | IMUNO | OUTROS | NENHUMANT | CIRURANT | RADIOANT | QUIMIOANT | HORMOANT | TMOANT | IMUNOANT | OUTROANT | NENHUMAPOS | CIRURAPOS | RADIOAPOS | QUIMIOAPOS | HORMOAPOS | TMOAPOS | IMUNOAPOS | OUTROAPOS | ULTINFO | CONSDIAG | TRATCONS | DIAGTRAT | ANODIAG | LATERALI | RRAS | PERDASEG | ERRO | RECNENHUM | RECLOCAL | RECREGIO | RECDIST | IBGEATEN | CIDO | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| count | 943660.00000 | 943659.000000 | 943660.000000 | 9.436600e+05 | 943660.000000 | 943660.000000 | 943660.000000 | 943660.000000 | 943660.000000 | 943660.0 | 943660.000000 | 943660.000000 | 943660.000000 | 943660.000000 | 943660.000000 | 943660.000000 | 943660.000000 | 943660.000000 | 943660.000000 | 943660.000000 | 943660.000000 | 943660.000000 | 943660.000000 | 943660.000000 | 943660.000000 | 943660.000000 | 943660.000000 | 943660.0 | 943660.0 | 943660.0 | 943660.0 | 943660.0 | 943660.000000 | 943660.000000 | 943660.000000 | 943660.000000 | 943660.000000 | 943660.000000 | 943660.000000 | 943660.000000 | 943660.000000 | 943660.000000 | 868764.000000 | 868764.000000 | 943660.000000 | 943660.000000 | 943660.000000 | 943660.000000 | 943660.0 | 943660.000000 | 943660.000000 | 943660.000000 | 943660.000000 | 9.436600e+05 | 943631.000000 |
| mean | 4.37267 | 59.832544 | 1.500366 | 3.545901e+06 | 4.925719 | 21.468955 | 1.371384 | 2.987796 | 83645.271036 | 8.0 | 7.851896 | 7.980918 | 7.997274 | 7.803760 | 7.806778 | 7.796074 | 0.083336 | 0.624015 | 0.260059 | 0.350319 | 0.122043 | 0.003889 | 0.006654 | 0.063399 | 0.999332 | 0.000001 | 0.000001 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.942144 | 0.004360 | 0.029190 | 0.008128 | 0.002320 | 0.000252 | 0.000152 | 0.006662 | 2.436262 | 52.378192 | 68.910686 | 65.945955 | 2010.314762 | 6.889584 | 16.035628 | 0.173644 | 0.0 | 0.917301 | 0.040326 | 0.024385 | 0.022254 | 3.533473e+06 | 83645.472312 |
| std | 2.94082 | 16.869766 | 0.500000 | 3.686201e+05 | 3.541344 | 12.621792 | 0.483175 | 0.245657 | 4587.585415 | 0.0 | 0.952922 | 0.354786 | 0.134579 | 1.124976 | 1.086837 | 0.895393 | 0.276390 | 0.484376 | 0.438667 | 0.477070 | 0.327336 | 0.062241 | 0.081300 | 0.243679 | 0.025830 | 0.001029 | 0.001029 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.233470 | 0.065883 | 0.168338 | 0.089788 | 0.048107 | 0.015879 | 0.012309 | 0.081351 | 0.860431 | 166.758604 | 151.221891 | 149.361384 | 5.264743 | 2.453975 | 23.992836 | 0.378803 | 0.0 | 0.275427 | 0.196723 | 0.154241 | 0.147508 | 1.905791e+04 | 4588.360210 |
| min | 1.00000 | 0.000000 | 1.000000 | 1.100015e+06 | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 80001.000000 | 8.0 | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 1.000000 | 0.000000 | 0.000000 | 0.000000 | 2000.000000 | 1.000000 | 1.000000 | 0.000000 | 0.0 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 3.502804e+06 | 80001.000000 |
| 25% | 2.00000 | 51.000000 | 1.000000 | 3.517505e+06 | 2.000000 | 12.000000 | 1.000000 | 3.000000 | 80762.000000 | 8.0 | 8.000000 | 8.000000 | 8.000000 | 8.000000 | 8.000000 | 8.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 1.000000 | 0.000000 | 0.000000 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 2.000000 | 3.000000 | 11.000000 | 0.000000 | 2006.000000 | 8.000000 | 6.000000 | 0.000000 | 0.0 | 1.000000 | 0.000000 | 0.000000 | 0.000000 | 3.509502e+06 | 80762.000000 |
| 50% | 3.00000 | 62.000000 | 2.000000 | 3.540606e+06 | 2.000000 | 24.000000 | 1.000000 | 3.000000 | 81403.000000 | 8.0 | 8.000000 | 8.000000 | 8.000000 | 8.000000 | 8.000000 | 8.000000 | 0.000000 | 1.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 1.000000 | 0.000000 | 0.000000 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 2.000000 | 22.000000 | 39.000000 | 32.000000 | 2011.000000 | 8.000000 | 10.000000 | 0.000000 | 0.0 | 1.000000 | 0.000000 | 0.000000 | 0.000000 | 3.543402e+06 | 81403.000000 |
| 75% | 9.00000 | 72.000000 | 2.000000 | 3.550308e+06 | 9.000000 | 29.000000 | 2.000000 | 3.000000 | 85003.000000 | 8.0 | 8.000000 | 8.000000 | 8.000000 | 8.000000 | 8.000000 | 8.000000 | 0.000000 | 1.000000 | 1.000000 | 1.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 1.000000 | 0.000000 | 0.000000 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 3.000000 | 53.000000 | 81.000000 | 84.000000 | 2015.000000 | 8.000000 | 13.000000 | 0.000000 | 0.0 | 1.000000 | 0.000000 | 0.000000 | 0.000000 | 3.550308e+06 | 85003.000000 |
| max | 9.00000 | 113.000000 | 2.000000 | 9.999999e+06 | 9.000000 | 99.000000 | 2.000000 | 9.000000 | 99893.000000 | 8.0 | 9.000000 | 9.000000 | 9.000000 | 9.000000 | 9.000000 | 9.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 4.000000 | 24971.000000 | 24996.000000 | 6891.000000 | 2020.000000 | 8.000000 | 99.000000 | 1.000000 | 0.0 | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 3.555000e+06 | 99893.000000 |
[25]:
fig = px.bar(x = np.sort(data.ANODIAG.unique()), y = data.ANODIAG.value_counts().sort_index(), labels={'x':'Ano', 'y':'Quantidade de casos'},
title = 'Número de casos por ano')
# fig.show()
fig.show(config = {'staticPlot': True})
[26]:
masc = data[data.SEXO == 1]
fem = data[data.SEXO == 2]
[27]:
mascx = np.sort(masc.ANODIAG.unique())
mascy = masc.ANODIAG.value_counts().sort_index()
femx = np.sort(fem.ANODIAG.unique())
femy = fem.ANODIAG.value_counts().sort_index()
fig = go.Figure()
fig.add_trace(go.Bar(x = mascx,
y = mascy,
name = 'Masculino',
))
fig.add_trace(go.Bar(x = femx,
y = femy,
name = 'Feminino',
))
fig.update_layout(barmode = 'group', title_text='Pacientes por ano',
yaxis_title = 'Indivíduos', xaxis_title = 'Ano')
# fig.show()
fig.show(config = {'staticPlot': True})
[ ]:
masc.FAIXAETAR = masc.FAIXAETAR.replace(['00-09', '10-19', '20-29', '30-39', '40-49', '50-59', '60-69'],
['00 a 09', '10 a 19', '20 a 29', '30 a 39', '40 a 49', '50 a 59', '60 a 69'])
fem.FAIXAETAR = fem.FAIXAETAR.replace(['00-09', '10-19', '20-29', '30-39', '40-49', '50-59', '60-69'],
['00 a 09', '10 a 19', '20 a 29', '30 a 39', '40 a 49', '50 a 59', '60 a 69'])
[29]:
mascx = np.sort(masc.FAIXAETAR.unique())
mascy = masc.FAIXAETAR.value_counts().sort_index()
femx = np.sort(fem.FAIXAETAR.unique())
femy = fem.FAIXAETAR.value_counts().sort_index()
fig = go.Figure()
fig.add_trace(go.Scatter(x = mascx,
y = (mascy/masc.shape[0])*100,
name = 'Masculino',
mode = 'lines+markers',
))
fig.add_trace(go.Scatter(x = femx,
y = (femy/fem.shape[0])*100,
name = 'Feminino',
mode = 'lines+markers',
))
fig.update_layout(title_text='Pacientes por faixa etária',
yaxis_title = '% Pacientes total por sexo', xaxis_title = 'Faixa etária')
# fig.show()
fig.show(config = {'staticPlot': True})
[30]:
# O estádio clínico auxilia o médico no planejamento terapêutico e na avaliação
# do tratamento proposto, além de servir para a predição do prognóstico.
## Na análise dos dados segundo estadiamento foram excluídos os casos informados
## como X (casos nos quais não é possível realizar o estadiamento ou sem informação)
## e Y (tipo de câncer em que não se aplica a classificação de tumores malignos TNM).
EC = list(np.sort(data.ECGRUP.unique()))[:5] # Categories 0, I, II, III, IV
mascEC = masc.loc[masc.ECGRUP.isin(EC)]
femEC = fem.loc[fem.ECGRUP.isin(EC)]
mascx = np.sort(mascEC.ECGRUP.unique())
mascy = mascEC.ECGRUP.value_counts().sort_index()
femx = np.sort(femEC.ECGRUP.unique())
femy = femEC.ECGRUP.value_counts().sort_index()
fig = go.Figure()
fig.add_trace(go.Bar(x = mascx,
y = (mascy/mascEC.shape[0])*100,
name = 'Masculino',
))
fig.add_trace(go.Bar(x = femx,
y = (femy/femEC.shape[0])*100,
name = 'Feminino',
))
fig.update_layout(barmode = 'group', title_text='Pacientes por estádio clínico',
yaxis_title = '% de indivíduos', xaxis_title = 'Estádio clínico')
# fig.show()
fig.show(config = {'staticPlot': True})
[32]:
df_diag1 = data[data.DIAGPREV == 1] # Sem diagnóstico/sem tratamento
df_diag2 = data[data.DIAGPREV == 2] # Com diagnóstico/sem tratamento
[33]:
x = np.sort(df_diag1.ANODIAG.unique())
y = df_diag1.groupby('ANODIAG')['CONSDIAG'].median() #mediana do número de dias entre consulta e diagnóstico
fig = go.Figure(go.Scatter(x=x, y=y, mode = 'lines+markers+text', text=y, textposition='top center'))
fig.update_layout(title='Mediana do número de dias entre consulta e diagnóstico por ano',
xaxis_title='Ano',
yaxis_title='Número de dias')
# fig.show()
fig.show(config = {'staticPlot': True})
[34]:
# Excluindo C44 (com morfologias entre 80101 e 81103), quem não fez tratamento e Morfologia 80001 (neoplasias de comportamento incerto)
df1 = df_diag1[(df_diag1.TOPOGRUP == 'C44') & (df_diag1.MORFO > 80101) & (df_diag1.MORFO < 81103)]
df2 = df_diag2[(df_diag2.TOPOGRUP == 'C44') & (df_diag2.MORFO > 80101) & (df_diag2.MORFO < 81103)]
id1 = df1.index
df_diag1 = df_diag1.drop(id1)
id2 = df2.index
df_diag2 = df_diag2.drop(id2)
df_diag1 = df_diag1[(df_diag1.NAOTRAT == 8) & (df_diag1.MORFO != 80001)]
df_diag2 = df_diag2[(df_diag2.NAOTRAT == 8) & (df_diag2.MORFO != 80001)]
[35]:
x1 = np.sort(df_diag1.ANODIAG.unique())
y1 = df_diag1.groupby('ANODIAG')['DIAGTRAT'].median()
x2 = np.sort(df_diag2.ANODIAG.unique())
y2 = df_diag2.groupby('ANODIAG')['DIAGTRAT'].median()
fig = go.Figure()
fig.add_trace(go.Scatter(x = x1,
y = y1,
name = 'Sem diagnóstico',
mode = 'lines+markers+text',
text=y1, textposition='top center',
))
fig.add_trace(go.Scatter(x = x2,
y = y2,
name = 'Com diagnóstico',
mode = 'lines+markers+text',
text=y2, textposition='top center',
))
fig.update_layout(title_text='Número de dias entre diagnóstico e tratamento por ano',
yaxis_title = 'Número de dias', xaxis_title = 'Ano')
# fig.show()
fig.show(config = {'staticPlot': True})
[ ]:
# 1 – VIVO, COM CÂNCER; 2 – VIVO, SOE; 3 – OBITO POR CANCER; 4 – OBITO POR OUTRAS CAUSAS, SOE
#### Possível label
data['ULTINFO'].value_counts()
2 435227
3 275159
4 123266
1 110008
Name: ULTINFO, dtype: int64
[36]:
mascx = np.sort(masc.ULTINFO.unique())
mascy = masc.ULTINFO.value_counts().sort_index()
femx = np.sort(fem.ULTINFO.unique())
femy = fem.ULTINFO.value_counts().sort_index()
fig = go.Figure()
fig.add_trace(go.Bar(x = mascx,
y = mascy,
name = 'Masculino',
))
fig.add_trace(go.Bar(x = femx,
y = femy,
name = 'Feminino',
))
fig.update_xaxes(
ticktext=["Vivo, com câncer", "Vivo, SOE", "Óbito por câncer", "Óbito outras causa, SOE"],
tickvals=[1, 2, 3, 4],
)
fig.update_layout(barmode = 'group', title_text='Última informação dos pacientes',
yaxis_title = 'Indivíduos', xaxis_title = 'Última informação')
# fig.show()
fig.show(config = {'staticPlot': True})
[37]:
corr_matrix = data.corr()
corr_matrix['ULTINFO'].sort_values(ascending = False)
[37]:
ULTINFO 1.000000
CATEATEND 0.209677
IDADE 0.179051
GLEASON 0.123226
PSA 0.118750
NENHUM 0.108192
LATERALI 0.077999
RECREGIO 0.068783
QUIMIO 0.054078
NENHUMAPOS 0.052510
RADIO 0.037872
RECLOCAL 0.034662
RECDIST 0.019467
G 0.019415
IDMITOTIC 0.011788
NENHUMANT 0.008194
CIRURANT -0.000522
RADIOANT -0.000522
TMO -0.003801
IMUNO -0.004610
OUTROS -0.004980
TMOAPOS -0.006424
IMUNOAPOS -0.007243
BASEDIAG -0.016254
IBGE -0.016555
LOCALTNM -0.018795
TRATCONS -0.021244
CIRURAPOS -0.024802
HORMOAPOS -0.029185
IBGEATEN -0.037029
OUTROAPOS -0.042629
RRAS -0.043626
RADIOAPOS -0.044204
CONSDIAG -0.045605
DIAGPREV -0.049736
QUIMIOAPOS -0.049821
DIAGTRAT -0.055853
HORMONIO -0.060877
CIDO -0.062996
MORFO -0.063005
CLINICA -0.063309
RECNENHUM -0.068966
ESCOLARI -0.069296
SEXO -0.081510
NAOTRAT -0.127175
CIRURGIA -0.127532
ANODIAG -0.283658
PERDASEG -0.325491
S NaN
QUIMIOANT NaN
HORMOANT NaN
TMOANT NaN
IMUNOANT NaN
OUTROANT NaN
ERRO NaN
Name: ULTINFO, dtype: float64
[ ]:
data.iloc[:,:30].hist(bins=10,figsize=(20,15))
plt.show()
[ ]:
data.iloc[:,30:60].hist(bins=10,figsize=(20,15))
plt.show()
[ ]:
data.iloc[:,60:].hist(bins=10,figsize=(20,15))
plt.show()
[ ]:
correlations = corr_matrix
fig, ax = plt.subplots(figsize = (25,20))
colormap = sns.diverging_palette(220, 10, as_cmap = True)
sns.heatmap(correlations, cmap = colormap, annot = True, fmt = '.2f')
fig.show()
Análise cidade de residência e não realização do tratamento¶
[ ]:
data.head(3)
| ESCOLARI | IDADE | SEXO | UFNASC | UFRESID | IBGE | CIDADE | CATEATEND | DTCONSULT | CLINICA | DIAGPREV | DTDIAG | BASEDIAG | TOPO | TOPOGRUP | DESCTOPO | MORFO | DESCMORFO | EC | ECGRUP | T | N | M | PT | PN | PM | S | G | LOCALTNM | IDMITOTIC | PSA | GLEASON | OUTRACLA | META01 | META02 | META03 | META04 | DTTRAT | NAOTRAT | TRATAMENTO | ... | HORMOANT | TMOANT | IMUNOANT | OUTROANT | NENHUMAPOS | CIRURAPOS | RADIOAPOS | QUIMIOAPOS | HORMOAPOS | TMOAPOS | IMUNOAPOS | OUTROAPOS | DTULTINFO | ULTINFO | CONSDIAG | TRATCONS | DIAGTRAT | ANODIAG | CICI | CICIGRUP | CICISUBGRU | FAIXAETAR | LATERALI | INSTORIG | DRS | RRAS | PERDASEG | ERRO | DTRECIDIVA | RECNENHUM | RECLOCAL | RECREGIO | RECDIST | REC01 | REC02 | REC03 | REC04 | IBGEATEN | CIDO | DSCCIDO | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 4 | 40.0 | 2 | SP | SP | 3530805 | MOGIMIRIM | 9 | 2000-01-03 | 15 | 1 | 2000-01-10 | 3 | C539 | C53 | COLO DO UTERO | 81402 | ADENOCARCINOMA IN SITU SOE | 0 | 0 | X | X | 0 | IS | 0 | 0 | 8 | 8 | 8 | 8 | 8 | 8 | NaN | NaN | NaN | NaN | NaN | 07/04/2000 | 8 | A | ... | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2016-09-13 | 2 | 7 | 95.0 | 88.0 | 2000 | NaN | NaN | NaN | 40-49 | 8 | NaN | DRS 14 SĂO JOĂO DA BOA VISTA | 15 | 1 | 0 | NaN | 1 | 0 | 0 | 0 | NaN | NaN | NaN | NaN | 3509502 | 81402.0 | ADENOCARCINOMA IN SITU SOE |
| 1 | 9 | 45.0 | 2 | RJ | SP | 3509502 | CAMPINAS | 9 | 2000-01-05 | 15 | 1 | 2000-01-17 | 3 | C539 | C53 | COLO DO UTERO | 80703 | CARCINOMA ESCAMOCELULAR SOE | IIIB | III | X | X | 0 | X | X | X | 8 | 8 | 8 | 8 | 8 | 8 | NaN | NaN | NaN | NaN | NaN | 20/01/2000 | 8 | F | ... | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2002-08-25 | 3 | 12 | 15.0 | 3.0 | 2000 | NaN | NaN | NaN | 40-49 | 8 | NaN | DRS 07 CAMPINAS | 15 | 0 | 0 | NaN | 1 | 0 | 0 | 0 | NaN | NaN | NaN | NaN | 3509502 | 80703.0 | CARCINOMA ESCAMOCELULAR SOE |
| 2 | 2 | 63.0 | 2 | MG | SP | 3509502 | CAMPINAS | 9 | 2000-01-19 | 15 | 1 | 2000-01-25 | 3 | C539 | C53 | COLO DO UTERO | 80703 | CARCINOMA ESCAMOCELULAR SOE | IIIB | III | X | X | 0 | X | X | X | 8 | 8 | 8 | 8 | 8 | 8 | NaN | NaN | NaN | NaN | NaN | 03/02/2000 | 8 | B | ... | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2001-03-20 | 3 | 6 | 15.0 | 9.0 | 2000 | NaN | NaN | NaN | 60-69 | 8 | NaN | DRS 07 CAMPINAS | 15 | 0 | 0 | NaN | 1 | 0 | 0 | 0 | NaN | NaN | NaN | NaN | 3509502 | 80703.0 | CARCINOMA ESCAMOCELULAR SOE |
3 rows × 95 columns
[38]:
df_muni = data[['UFRESID','IBGE','NAOTRAT']]
df_muni = df_muni[df_muni.UFRESID != 'OP']
df_muni.head(3)
[38]:
| UFRESID | IBGE | NAOTRAT | |
|---|---|---|---|
| 0 | SP | 3530805 | 8 |
| 1 | SP | 3509502 | 8 |
| 2 | SP | 3509502 | 8 |
[39]:
df_cities = pd.read_csv('https://raw.githubusercontent.com/kelvins/Municipios-Brasileiros/main/csv/municipios.csv')
df_cities = df_cities[['codigo_ibge','nome','latitude','longitude']]
df_cities.head()
[39]:
| codigo_ibge | nome | latitude | longitude | |
|---|---|---|---|---|
| 0 | 5200050 | Abadia de Goiás | -16.75730 | -49.4412 |
| 1 | 3100104 | Abadia dos Dourados | -18.48310 | -47.3916 |
| 2 | 5200100 | Abadiânia | -16.19700 | -48.7057 |
| 3 | 3100203 | Abaeté | -19.15510 | -45.4444 |
| 4 | 1500107 | Abaetetuba | -1.72183 | -48.8788 |
[40]:
df_muni = df_muni.merge(df_cities, how='left', left_on='IBGE', right_on='codigo_ibge')
df_muni.head(5)
[40]:
| UFRESID | IBGE | NAOTRAT | codigo_ibge | nome | latitude | longitude | |
|---|---|---|---|---|---|---|---|
| 0 | SP | 3530805 | 8 | 3530805 | Mogi Mirim | -22.4332 | -46.9532 |
| 1 | SP | 3509502 | 8 | 3509502 | Campinas | -22.9053 | -47.0659 |
| 2 | SP | 3509502 | 8 | 3509502 | Campinas | -22.9053 | -47.0659 |
| 3 | SP | 3545803 | 8 | 3545803 | Santa Bárbara d'Oeste | -22.7553 | -47.4143 |
| 4 | SP | 3530805 | 8 | 3530805 | Mogi Mirim | -22.4332 | -46.9532 |
[41]:
df_muni.NAOTRAT.value_counts()
[41]:
8 868164
5 30655
7 20391
2 9166
9 7323
6 2474
3 1892
4 1718
1 1581
Name: NAOTRAT, dtype: int64
[42]:
df_muni['razao'] = df_muni.NAOTRAT.replace([1,2,3,4,5,6,7,8,9],
['RECUSA DO TRATAMENTO','DOENÇA AVANÇADA, FALTA DE CONDIÇÕES CLINICAS','OUTRAS DOENÇAS ASSOCIADAS',
'ABANDONO DE TRATAMENTO','OBITO POR CANCER','OBITO POR OUTRAS CAUSAS, SOE','OUTRAS','NÃO SE APLICA',
'SEM INFORMAÇÃO'])
df_muni.head(3)
[42]:
| UFRESID | IBGE | NAOTRAT | codigo_ibge | nome | latitude | longitude | razao | |
|---|---|---|---|---|---|---|---|---|
| 0 | SP | 3530805 | 8 | 3530805 | Mogi Mirim | -22.4332 | -46.9532 | NÃO SE APLICA |
| 1 | SP | 3509502 | 8 | 3509502 | Campinas | -22.9053 | -47.0659 | NÃO SE APLICA |
| 2 | SP | 3509502 | 8 | 3509502 | Campinas | -22.9053 | -47.0659 | NÃO SE APLICA |
[43]:
df_naotrat = df_muni[df_muni.NAOTRAT.isin([1,4,7])]
df_naotrat.shape
[43]:
(23690, 8)
[44]:
df_hosp = pd.DataFrame()
df_hosp['Hospitais'] = data.IBGEATEN.unique()
df_hosp.head(2)
[44]:
| Hospitais | |
|---|---|
| 0 | 3509502 |
| 1 | 3543402 |
[45]:
df_hosp = df_hosp.merge(df_cities, how='left', left_on='Hospitais', right_on='codigo_ibge')
df_hosp.head()
[45]:
| Hospitais | codigo_ibge | nome | latitude | longitude | |
|---|---|---|---|---|---|
| 0 | 3509502 | 3509502 | Campinas | -22.9053 | -47.0659 |
| 1 | 3543402 | 3543402 | Ribeirão Preto | -21.1699 | -47.8099 |
| 2 | 3554102 | 3554102 | Taubaté | -23.0104 | -45.5593 |
| 3 | 3550308 | 3550308 | São Paulo | -23.5329 | -46.6395 |
| 4 | 3506003 | 3506003 | Bauru | -22.3246 | -49.0871 |
[46]:
fig = px.scatter_geo(df_naotrat,
lat='latitude',
lon='longitude',
color='razao',
scope='south america',
projection='natural earth'
)
fig.add_scattergeo(lat=df_hosp.latitude,
lon=df_hosp.longitude,
name='Hospitais',
marker=dict(color='orange', size=7, symbol='diamond')
)
fig.update_layout(template='xgridoff',
margin={"r":0,"l":0,"b":0},
title_text="Razão para não tratamento")
fig.update_layout()
# fig.show()
fig.show(config = {'staticPlot': True})
Variáveis faltantes¶
[47]:
missing = data.isna().sum().sort_values(ascending=False)
prop = missing[missing > 0]/data.shape[0]
prop
[47]:
INSTORIG 0.999511
REC04 0.998494
META04 0.996361
REC03 0.994401
META03 0.987246
REC02 0.982164
CICI 0.972926
CICIGRUP 0.972926
CICISUBGRU 0.972926
META02 0.960153
REC01 0.937256
OUTRACLA 0.935571
DTRECIDIVA 0.899434
META01 0.868684
PM 0.579580
PN 0.556207
PT 0.551369
TRATCONS 0.079368
DIAGTRAT 0.079368
DTTRAT 0.079368
DRS 0.075212
DTULTINFO 0.000048
CIDO 0.000031
DSCCIDO 0.000031
DESCMORFO 0.000003
IDADE 0.000001
dtype: float64
[48]:
fig = px.bar(x = prop.index, y = prop*100, labels={'y': '%', 'x':'Variable'},title='Percentage of missing data per column')
# fig.show()
fig.show(config = {'staticPlot': True})
[ ]:
# INSTORIG - Instituição de origem. Obrigatório somente se DIAGPREV = 03 – COM DIAGNÓSTICO / COM TRATAMENTO
data[data['INSTORIG'].isna() == False]['INSTORIG'].shape
(461,)
[ ]:
# REC04 - Local da recidiva/metástase. Formato: C99
data[data['REC04'].isna() == False]['REC04'].shape
(1421,)
[ ]:
# META04 - Metástase. Formato: C99
data[data['META04'].isna() == False]['META04'].shape
(3434,)
[ ]:
# REC03 - Local da recidiva/metástase. Formato: C99
data[data['REC03'].isna() == False]['REC03'].shape
(5284,)
[ ]:
# META03 - Metástase. Formato: C99
data[data['META03'].isna() == False]['META03'].shape
(12035,)
[ ]:
# REC02 - Local da recidiva/metástase. Formato: C99
data[data['REC02'].isna() == False]['REC02'].shape
(16831,)
[ ]:
# CICI - Tumor infantil
data[data['CICI'].isna() == False]['CICI'].shape
(25549,)
[ ]:
# CICIGRUP - Tumor infantil - Grupo
data[data['CICIGRUP'].isna() == False]['CICIGRUP'].shape
(25549,)
[ ]:
# CICISUBGRU - Tumor infantil - Sub grupo
data[data['CICISUBGRU'].isna() == False]['CICISUBGRU'].shape
(25549,)
[ ]:
# META02 - Metástase. Formato: C99
data[data['META02'].isna() == False]['META02'].shape
(37602,)
[ ]:
# REC01 - Local da recidiva/metástase. Formato: C99
data[data['REC01'].isna() == False]['REC01'].shape
(59209,)
[ ]:
# OUTRACLA - Outra classificação de estadiamento
data[data['OUTRACLA'].isna() == False]['OUTRACLA'].shape
(60799,)
[ ]:
# DTRECIDIVA - Data da última ocorrência de recidiva
data[data['DTRECIDIVA'].isna() == False]['DTRECIDIVA'].shape
(94900,)
[ ]:
# META01 - Metástase. Formato: C99
data[data['META01'].isna() == False]['META01'].shape
(123918,)
[ ]:
# PM - Estadiamento pós cirúrgico
data[data['PM'].isna() == False]['PM'].shape
(396734,)
[ ]:
# PN - Estadiamento pós cirúrgico
data[data['PN'].isna() == False]['PN'].shape
(418790,)
[ ]:
# PT - Estadiamento pós cirúrgico
data[data['PT'].isna() == False]['PT'].shape
(423355,)
[ ]:
# TRATCONS - Diferença em dias entre as datas de consulta e tratamento
data[data['TRATCONS'].isna() == False]['TRATCONS'].shape
(868764,)
[ ]:
# DIAGTRAT - Diferença em dias entre as datas de tratamento e diagnóstico
data[data['DIAGTRAT'].isna() == False]['DIAGTRAT'].shape
(868764,)
[ ]:
# DTTRAT - Data de inicio do tratamento
data[data['DTTRAT'].isna() == False]['DTTRAT'].shape
(868764,)
[ ]:
# DRS - DRS
data[data['DRS'].isna() == False]['DRS'].shape
(872685,)
[ ]:
# DTULTINFO - Data da última informação do paciente
data[data['DTULTINFO'].isna() == False]['DTULTINFO'].shape
(943615,)
[ ]:
# CIDO - Código da morfologia 3ª Edição
data[data['CIDO'].isna() == False]['CIDO'].shape
(943631,)
[ ]:
# DSCCIDO - Descrição da morfologia 3ª Edição
data[data['DSCCIDO'].isna() == False]['DSCCIDO'].shape
(943631,)
[ ]:
# DESCMORFO - Descrição da morfologia
data[data['DESCMORFO'].isna() == False]['DESCMORFO'].shape
(943657,)
[ ]:
# IDADE - Idade do paciente
data[data['IDADE'].isna() == False]['IDADE'].shape
(943659,)
Análise das colunas¶
[ ]:
df_aux = read_csv('/content/drive/MyDrive/Trabalho/Cancer/Datasets/pacigeral.csv')
/usr/local/lib/python3.7/dist-packages/IPython/core/interactiveshell.py:2822: DtypeWarning:
Columns (23,24,25,32,36,78,91) have mixed types.Specify dtype option on import or set low_memory=False.
(943660, 95)
Datas¶
DTCONSULT: Data da 1ª consulta (date = 10). Formato: DD/MM/YYYY
DTDIAG: Data do diagnóstico (date = 10). Formato: DD/MM/YYYY
DTTRAT: Data de inicio do tratamento (date = 10). Formato: DD/MM/YYYY
DTULTINFO: Data da última informação do paciente (date = 10). Formato: DD/MM/YYYY
DTRECIDIVA: Data da última ocorrência de recidiva (date = 10). Formato: DD/MM/YYYY
[ ]:
# Data - DTCONSULT, DTDIAG, DTTRAT, DTULTINFO, DTRECIDIVA
dates = ['DTCONSULT', 'DTDIAG', 'DTTRAT', 'DTULTINFO', 'DTRECIDIVA']
df_aux[dates].isna().sum()
DTCONSULT 0
DTDIAG 0
DTTRAT 74896
DTULTINFO 45
DTRECIDIVA 848760
dtype: int64
[ ]:
(df_aux[dates].isna().sum()/df_aux.shape[0])*100
DTCONSULT 0.000000
DTDIAG 0.000000
DTTRAT 7.936757
DTULTINFO 0.004769
DTRECIDIVA 89.943412
dtype: float64
Categorias numéricas¶
ESCOLARI: Código para escolaridade do paciente (int = 1).
1 – ANALFABETO
2 – ENS. FUND. INCOMPLETO
3 – ENS. FUND. COMPLETO
4 – ENSINO MÉDIO
5 – SUPERIOR
9 – IGNORADA
[ ]:
df_aux.ESCOLARI.value_counts()
2 303175
9 249236
3 142196
4 110885
1 71032
5 67136
Name: ESCOLARI, dtype: int64
SEXO: Sexo do paciente (int = 1).
1 – MASCULINO
2 – FEMININO
[ ]:
df_aux.SEXO.value_counts()
2 472175
1 471485
Name: SEXO, dtype: int64
CATEATEND: Categoria de atendimento ao diagnóstico (int = 1).
1 - CONVENIO
2 - SUS
3 – PARTICULAR
9 – SEM INFORMAÇÃO
[ ]:
df_aux.CATEATEND.value_counts()
2 448124
9 404512
1 80862
3 10162
Name: CATEATEND, dtype: int64
CLINICA: Código da clinica (int = 2).
1 – ALERGIA/IMUNOLOGIA
2 – CIRURGIA CARDIACA
3 – CIRURGIA CABEÇA E PESCOÇO
4 – CIRURGIA GERAL
5 – CIRURGIA PEDIATRICA
6 – CIRURGIA PLASTICA
7 – CIRURGIA TORAXICA
8 – CIRURGIA VASCULAR
9 – CLINICA MEDICA
10 – DERMATOLOGIA
11 – ENDOCRINOLOGIA
12 – GASTROCIRURGIA
13 – GASTROENTEROLOGIA
14 – GERIATRIA
15 – GINECOLOGIA
16 – GINECOLOGIA / OBSTETRICIA
17 – HEMATOLOGIA
18 – INFECTOLOGIA
19 – NEFROLOGIA
20 – NEUROCIRURGIA
21 – NEUROLOGIA
22 – OFTALMOLOGIA
23 – ONCOLOGIA CIRURGICA
24 – ONCOLOGIA CLINICA
25 – ONCOLOGIA PEDIATRICA
26 – ORTOPEDIA
27 – OTORRINOLARINGOLOGIA
28 – PEDIATRIA
29 – PNEUMOLOGIA
30 – PROCTOLOGIA
31 – RADIOTERAPIA
32 – UROLOGIA
33 – MASTOLOGIA
34 – ONCOLOGIA CUTANEA
35 – CIRURGIA PELVICA
36 – CIRURGIA ABDOMINAL
37 – ODONTOLOGIA
38 – TRANSPLANTE HEPATICO
99 – IGNORADO
[ ]:
np.sort(df_aux.CLINICA.unique()) #### 39
array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
35, 36, 37, 38, 39, 99])
DIAGPREV: Diagnóstico e tratamento anterior (int = 1).
1 – SEM DIAGNÓSTICO / SEM TRATAMENTO
2 – COM DIAGNÓSTICO / SEM TRATAMENTO
3 – COM DIAGNÓSTICO / COM TRATAMENTO
4 – OUTROS
[ ]:
df_aux.DIAGPREV.value_counts()
1 593200
2 350460
Name: DIAGPREV, dtype: int64
BASEDIAG: Código da base do diagnóstico (int = 1).
1 – EXAME CLINICO
2 – RECURSOS AUXILIARES NÃO MICROSCÓPICOS
3 – CONFIRMAÇÃO MICROSCÓPICA
9 – SEM INFORMAÇÃO
[ ]:
df_aux.BASEDIAG.value_counts()
3 927294
2 13320
1 2059
9 987
Name: BASEDIAG, dtype: int64
S: Classificação TNM - S (int = 1). Domínio: 0; 1; 2; 3; 8 – NÃO SE APLICA; 9 – X
G: Classificação TNM – G (Grau) (char = 5).
Domínio (exceto C40, C41, C381, C382, C383, C47, C48 e C49): 0; 1; 2; 3; 4; 8 – NÃO SE APLICA; 9 – X
Domínio (somente C40, C41, C381, C382, C383, C47, C48 e C49): ALTO; BAIXO; 8 – NÃO SE APLICA; 9 – X
[ ]:
df_aux.S.value_counts() ### drop
8 943660
Name: S, dtype: int64
[ ]:
df_aux.G.value_counts()
8 903222
9 12770
3 10600
2 8549
1 4720
4 3799
Name: G, dtype: int64
[ ]:
# 8 - Não se aplica, 9 - X
df_aux.G[df_aux.G < 8].count()
27668
LOCALTNM: Classificação TNM - Localização (int = 1).
1 – SUPERIOR
2 – MEDIO
3 – INFERIOR
8 – NÃO SE APLICA
9 – X
IDMITOTIC: Classificação TNM – Índice Mitótico (int = 1).
1 – ALTA
2 – BAIXA
8 – NÃO SE APLICA
9 – X
[ ]:
df_aux.LOCALTNM.value_counts()
8 939049
2 2006
9 1384
1 625
3 596
Name: LOCALTNM, dtype: int64
[ ]:
# 8 - Não se aplica, 9 - X
df_aux.LOCALTNM[df_aux.LOCALTNM < 8].count()
3227
[ ]:
df_aux.IDMITOTIC.value_counts()
8 943155
2 267
1 151
9 87
Name: IDMITOTIC, dtype: int64
[ ]:
# 8 - Não se aplica, 9 - X
df_aux.IDMITOTIC[df_aux.IDMITOTIC < 8].count()
418
PSA: Classificação TNM - PSA (int = 1).
1 – MENOR QUE 10
2 – MAIOR OU IGUAL A 10 E MENOR QUE 20
3 – MAIOR OU IGUAL A 20
8 – NÃO SE APLICA
9 – X
GLEASON: Classificação TNM - Gleason (int = 1).
1 – MENOR OU IGUAL A 6
2 – IGUAL A 7
3 – MAIOR OU IGUAL A 8
8 – NÃO SE APLICA
9 – X
[ ]:
df_aux.PSA.value_counts()
8 911114
1 17698
2 6282
3 5362
9 3204
Name: PSA, dtype: int64
[ ]:
# 8 - Não se aplica, 9 - X
df_aux.PSA[df_aux.PSA < 8].count()
29342
[ ]:
df_aux.GLEASON.value_counts()
8 911114
2 13794
1 10079
3 6282
9 2391
Name: GLEASON, dtype: int64
[ ]:
# 8 - Não se aplica, 9 - X
df_aux.GLEASON[df_aux.GLEASON < 8].count()
30155
NAOTRAT: Código da razão para não realização do tratamento (int = 1).
1 – RECUSA DO TRATAMENTO
2 – DOENÇA AVANÇADA, FALTA DE CONDIÇÕES CLINICAS
3 – OUTRAS DOENÇAS ASSOCIADAS
4 – ABANDONO DE TRATAMENTO
5 – OBITO POR CANCER
6 – OBITO POR OUTRAS CAUSAS, SOE
7 – OUTRAS
8 – NÃO SE APLICA (CASO TENHA TRATAMENTO)
9 – SEM INFORMAÇÃO
[ ]:
df_aux.NAOTRAT.value_counts()
8 868397
5 30655
7 20453
2 9166
9 7324
6 2474
3 1892
4 1718
1 1581
Name: NAOTRAT, dtype: int64
NENHUM: Tratamento recebido no hospital = nenhum (int = 1). 0 – NÃO; 1 – SIM
CIRURGIA: Tratamento recebido no hospital = cirurgia (int = 1). 0 – NÃO; 1 – SIM
RADIO: Tratamento recebido no hospital = radioterapia (int = 1). 0 – NÃO; 1 – SIM
QUIMIO: Tratamento recebido no hospital = quimioterapia (int = 1). 0 – NÃO; 1 – SIM
HORMONIO: Tratamento recebido no hospital = hormonioterapia (int = 1). 0 – NÃO; 1 – SIM
TMO: Tratamento recebido no hospital = tmo (int = 1). 0 – NÃO; 1 – SIM
IMUNO: Tratamento recebido no hospital = imunoterapia (int = 1). 0 – NÃO; 1 – SIM
OUTROS: Tratamento recebido no hospital = outros (int = 1). 0 – NÃO; 1 – SIM
[ ]:
df_aux.NENHUM.unique()
array([0, 1])
[ ]:
df_aux.CIRURGIA.unique()
array([1, 0])
[ ]:
df_aux.RADIO.unique()
array([0, 1])
[ ]:
df_aux.QUIMIO.unique()
array([0, 1])
[ ]:
df_aux.HORMONIO.unique()
array([0, 1])
[ ]:
df_aux.TMO.unique()
array([0, 1])
[ ]:
df_aux.IMUNO.unique()
array([0, 1])
[ ]:
df_aux.OUTROS.unique()
array([0, 1])
NENHUMANT: Tratamento recebido fora do hospital e antes da admissão = nenhum (int = 1). 0 – NÃO; 1 – SIM
CIRURANT: Tratamento recebido fora do hospital e antes da admissão = cirurgia (int = 1). 0 – NÃO; 1 – SIM
RADIOANT: Tratamento recebido fora do hospital e antes da admissão = radioterapia (int = 1). 0 – NÃO; 1 – SIM
QUIMIOANT: Tratamento recebido fora do hospital e antes da admissão = quimioterapia (int = 1). 0 – NÃO; 1 – SIM
HORMOANT: Tratamento recebido fora do hospital e antes da admissão = hormonioterapia (int = 1). 0 – NÃO; 1 – SIM
TMOANT: Tratamento recebido fora do hospital e antes da admissão = tmo (int = 1). 0 – NÃO; 1 – SIM
IMUNOANT: Tratamento recebido fora do hospital e antes da admissão = imunoterapia (int = 1). 0 – NÃO; 1 – SIM
OUTROANT: Tratamento recebido fora do hospital e antes da admissão = outros (int = 1). 0 – NÃO; 1 – SIM
[ ]:
df_aux.NENHUMANT.unique()
array([1, 0])
[ ]:
df_aux.CIRURANT.unique()
array([0, 1])
[ ]:
df_aux.RADIOANT.unique()
array([0, 1])
[ ]:
df_aux.QUIMIOANT.unique() ### drop
array([0])
[ ]:
df_aux.HORMOANT.unique() ### drop
array([0])
[ ]:
df_aux.TMOANT.unique() ### drop
array([0])
[ ]:
df_aux.IMUNOANT.unique() ### drop
array([0])
[ ]:
df_aux.OUTROANT.unique() ### drop
array([0])
NENHUMAPOS: Tratamento recebido fora do hospital e durante/após admissão = nenhum (int = 1). 0 – NÃO; 1 – SIM
CIRURAPOS: Tratamento recebido fora do hospital e durante/após admissão = cirurgia (int = 1). 0 – NÃO; 1 – SIM
RADIOAPOS: Tratamento recebido fora do hospital e durante/após admissão = radioterapia (int = 1). 0 – NÃO; 1 – SIM
QUIMIOAPOS: Tratamento recebido fora do hospital e durante/após admissão = quimioterapia (int = 1). 0 – NÃO; 1 – SIM
HORMOAPOS: Tratamento recebido fora do hospital e durante/após admissão = hormonioterapia (int = 1). 0 – NÃO; 1 – SIM
TMOAPOS: Tratamento recebido fora do hospital e durante/após admissão = tmo (int = 1). 0 – NÃO; 1 – SIM
IMUNOAPOS: Tratamento recebido fora do hospital e durante/após admissão = imunoterapia (int = 1). 0 – NÃO; 1 – SIM
OUTROAPOS: Tratamento recebido fora do hospital e durante/após admissão = outros (int = 1). 0 – NÃO; 1 – SIM
[ ]:
df_aux.NENHUMAPOS.unique()
array([1, 0])
[ ]:
df_aux.CIRURAPOS.unique()
array([0, 1])
[ ]:
df_aux.RADIOAPOS.unique()
array([0, 1])
[ ]:
df_aux.QUIMIOAPOS.unique()
array([0, 1])
[ ]:
df_aux.HORMOAPOS.unique()
array([0, 1])
[ ]:
df_aux.TMOAPOS.unique()
array([0, 1])
[ ]:
df_aux.IMUNOAPOS.unique()
array([0, 1])
[ ]:
df_aux.OUTROAPOS.unique()
array([0, 1])
ULTINFO: Última informação sobre o paciente (int = 1).
1 – VIVO, COM CÂNCER
2 – VIVO, SOE
3 – OBITO POR CANCER
4 – OBITO POR OUTRAS CAUSAS, SOE
[ ]:
df_aux.ULTINFO.value_counts()
2 435227
3 275159
4 123266
1 110008
Name: ULTINFO, dtype: int64
LATERALI: Lateralidade (int = 1).
1 – DIREITA
2 – ESQUERDA
3 – BILATERAL
8 - NÃO SE APLICA
[ ]:
df_aux.LATERALI.value_counts()
8 782219
1 81545
2 77560
3 2336
Name: LATERALI, dtype: int64
PERDASEG: Perda de seguimento (int = 1).
0 – Não
1 – Sim
8 – Não se aplica (excluído do cálculo para o indicador perda de seguimento)
[ ]:
df_aux.PERDASEG.value_counts()
0 779799
1 163861
Name: PERDASEG, dtype: int64
[ ]:
df_aux[df_aux.PERDASEG == 1]['ULTINFO'].value_counts()
2 135234
1 28626
3 1
Name: ULTINFO, dtype: int64
ERRO: Admissão com erro (int = 1). 0 – Sem; 1 – Com
RECNENHUM: Sem recidiva (int = 1). 0 - Não; 1 - Sim
RECLOCAL: Recidiva local (int = 1). 0 - Não; 1 - Sim
RECREGIO: Recidiva regional (int = 1). 0 - Não; 1 - Sim
RECDIST: Recidiva a distância / metástase (int = 1). 0 - Não; 1 - Sim
[ ]:
df_aux.ERRO.unique() ### drop
array([0])
[ ]:
df_aux.RECNENHUM.value_counts()
1 865620
0 78040
Name: RECNENHUM, dtype: int64
[ ]:
df_aux.RECLOCAL.value_counts()
0 905606
1 38054
Name: RECLOCAL, dtype: int64
[ ]:
df_aux.RECREGIO.value_counts()
0 920649
1 23011
Name: RECREGIO, dtype: int64
[ ]:
df_aux.RECDIST.value_counts()
0 922660
1 21000
Name: RECDIST, dtype: int64
Categorias com letras¶
TRATAMENTO: Código de combinação dos tratamentos realizados (char = 1).
A – Cirurgia
B – Radioterapia
C – Quimioterapia
D – Cirurgia + Radioterapia
E – Cirurgia + Quimioterapia
F – Radioterapia + Quimioterapia
G – Cirurgia + Radio + Quimio
H – Cirurgia + Radio + Quimio + Hormonio
I – Outras combinações de tratamento
J – Nenhum tratamento realizadoTRATHOSP: Código de combinação dos tratamentos realizados no hospital (char = 1).
A – Cirurgia
B – Radioterapia
C – Quimioterapia
D – Cirurgia + Radioterapia
E – Cirurgia + Quimioterapia
F – Radioterapia + Quimioterapia
G – Cirurgia + Radio + Quimio
H – Cirurgia + Radio + Quimio + Hormonio
I – Outras combinações de tratamento
J – Nenhum tratamento realizado
TRATFANTES: Código de combinação dos tratamentos realizados antes/durante admissão fora do hospital (char = 1).
A – Cirurgia
B – Radioterapia
C – Quimioterapia
D – Cirurgia + Radioterapia
E – Cirurgia + Quimioterapia
F – Radioterapia + Quimioterapia
G – Cirurgia + Radio + Quimio
H – Cirurgia + Radio + Quimio + Hormonio
I – Outras combinações de tratamento
J – Nenhum tratamento realizado
K – Sem informação
TRATFAPOS: Código de combinação dos tratamentos realizados após admissão fora do hospital (char = 1).
A – Cirurgia
B – Radioterapia
C – Quimioterapia
D – Cirurgia + Radioterapia
E – Cirurgia + Quimioterapia
F – Radioterapia + Quimioterapia
G – Cirurgia + Radio + Quimio
H – Cirurgia + Radio + Quimio + Hormonio
I – Outras combinações de tratamento
J – Nenhum tratamento realizado
K – Sem informação
[ ]:
df_aux.TRATAMENTO.unique()
array(['A', 'F', 'B', 'D', 'G', 'I', 'J', 'C', 'E', 'H'], dtype=object)
[ ]:
df_aux.TRATHOSP.unique()
array(['A', 'F', 'B', 'D', 'G', 'I', 'J', 'C', 'E', 'H'], dtype=object)
[ ]:
df_aux.TRATFANTES.unique()
array(['J', 'A', 'B'], dtype=object)
[ ]:
df_aux.TRATFAPOS.unique()
array(['J', 'B', 'C', 'I', 'F', 'A', 'D', 'E', 'G', 'H'], dtype=object)
Números¶
IDADE: Idade do paciente (int = 3).
[ ]:
df_aux.IDADE.nunique()
109
[ ]:
df_aux[df_aux.IDADE.isnull() == True]
| ESCOLARI | IDADE | SEXO | UFNASC | UFRESID | IBGE | CIDADE | CATEATEND | DTCONSULT | CLINICA | DIAGPREV | DTDIAG | BASEDIAG | TOPO | TOPOGRUP | DESCTOPO | MORFO | DESCMORFO | EC | ECGRUP | T | N | M | PT | PN | PM | S | G | LOCALTNM | IDMITOTIC | PSA | GLEASON | OUTRACLA | META01 | META02 | META03 | META04 | DTTRAT | NAOTRAT | TRATAMENTO | ... | HORMOANT | TMOANT | IMUNOANT | OUTROANT | NENHUMAPOS | CIRURAPOS | RADIOAPOS | QUIMIOAPOS | HORMOAPOS | TMOAPOS | IMUNOAPOS | OUTROAPOS | DTULTINFO | ULTINFO | CONSDIAG | TRATCONS | DIAGTRAT | ANODIAG | CICI | CICIGRUP | CICISUBGRU | FAIXAETAR | LATERALI | INSTORIG | DRS | RRAS | PERDASEG | ERRO | DTRECIDIVA | RECNENHUM | RECLOCAL | RECREGIO | RECDIST | REC01 | REC02 | REC03 | REC04 | IBGEATEN | CIDO | DSCCIDO | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 125874 | 9 | NaN | 1 | BA | SP | 3549904 | SAO JOSE DOS CAMPOS | 9 | 2011-11-16 | 24 | 2 | 2011-03-11 | 3 | C619 | C61 | PROSTATA | 85503 | CARCINOMA DE CELULAS ACINOSAS | IV | IV | 4 | 0 | 0 | NaN | NaN | NaN | 8 | 8 | 8 | 8 | 8 | 8 | NaN | NaN | NaN | NaN | NaN | 18/11/2011 | 8 | I | ... | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2015-08-28 | 3 | 250 | 2.0 | 252.0 | 2011 | XIF | XI OUTROS NEOPLASMAS MALIGNOS EPITELIAIS E OU... | F OUTROS CARCINOMAS E CARCINOMAS NAO ESPECIFI... | 70+ | 8 | NaN | DRS 17 TAUBATÉ | 17 | 0 | 0 | NaN | 1 | 0 | 0 | 0 | NaN | NaN | NaN | NaN | 3549904 | 85503.0 | CARCINOMA DE CELULAS ACINOSAS |
1 rows × 95 columns
CONSDIAG: Diferença em dias entre as datas de consulta o diagnóstico (num = dias).
TRATCONS: Diferença em dias entre as datas de consulta e tratamento (num = dias).
DIAGTRAT: Diferença em dias entre as datas de tratamento e diagnóstico (num = dias).
[ ]:
df_aux.CONSDIAG.isna().sum()
0
[ ]:
df_aux.TRATCONS.isna().sum()
74896
[ ]:
df_aux.TRATCONS.median()
39.0
[ ]:
df_aux.DIAGTRAT.isna().sum()
74896
[ ]:
df_aux.DIAGTRAT.median()
32.0
ANODIAG: Ano de diagnóstico (int = 4). Formato: 9999
[ ]:
np.sort(df_aux.ANODIAG.unique())
array([2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020])
IBGE: Código da cidade de residência do paciente segundo IBGE com digito verificador (int = 7).
IBGEATEN: Código IBGE da instituição (int = 7).
[ ]:
df_aux.IBGE.nunique()
2955
[ ]:
df_aux.IBGE.isna().sum()
0
[ ]:
df_aux.IBGEATEN.isna().sum()
0
[ ]:
df_aux.IBGEATEN.unique()
array([3509502, 3543402, 3554102, 3550308, 3506003, 3510609, 3530706,
3547809, 3549904, 3552205, 3548708, 3548500, 3504503, 3507506,
3507605, 3525904, 3503307, 3526902, 3538709, 3503208, 3505500,
3516200, 3548906, 3525300, 3511102, 3549805, 3541406, 3529005,
3524402, 3502804, 3522406, 3536208, 3552809, 3555000, 3530607,
3518404, 3548807, 3543907, 3504008, 3513801, 3549102, 3518701,
3534708, 3524808])
CIDO: Código da morfologia 3ª Edição (int = 5). Formato: 99999
MORFO: Código da morfologia (char = 5). Formato: 99999
[ ]:
df_aux.CIDO.isna().sum()
29
[ ]:
df_aux.CIDO.unique()
array([81402., 80703., 81403., 84803., 80102., 85003., 85303., 85202.,
89303., 86201., 85203., 85002., 83803., 83103., 85603., 80763.,
80103., 89803., 89503., 80723., 84403., 80503., 85103., 85703.,
80772., 80203., 82113., 80702., 82603., 85901., 88003., 90703.,
88903., 85033., 89333., 91001., 85043., 84413., 84603., 87203.,
84621., 86231., 82013., 85223., 88013., 84421., 90203., 90603.,
85012., 90803., 82303., 82513., 91013., 85423., 80713., 86501.,
80903., 80413., 95913., 80513., 82003., 80333., 90201., 80013.,
80003., 80001., 84721., 86203., 88323., 90003., 84703., 82012.,
87303., 86211., 90801., 95813., 80502., 86301., 82463., 80753.,
91203., 90713., 80762., 85403., 82623., 89103., 82302., 80743.,
80223., 80983., 81203., 83843., 90643., 82403., 85233., 85013.,
90813., 85042., 91003., 89313., 80053., 84823., 88913., 84013.,
85753., 86401., 85133., 84713., 86313., 85032., 80523., 90853.,
89361., 85213., 83203., 86403., 86703., 85222., 88053., 89353.,
80133., 83233., 90503., 84073., 89013., 81482., 87463., 83801.,
84903., 84503., 87113., 83133., 86343., 84631., 91103., 82453.,
85243., 82553., 81413., 89903., 80733., 91053., 95903., 99503.,
94403., 98203., 82203., 96503., 98633., 80123., 93913., 98353.,
84813., 95603., 95303., 98233., 97023., 96753., 80933., 82473.,
96633., 90613., 85503., 80423., nan, 97313., 94203., 92501.,
90642., 80213., 82523., 80913., 80973., 97323., 96673., 96523.,
83303., 94013., 96803., 96713., 94003., 88303., 88113., 90633.,
83123., 87713., 96983., 81703., 82433., 94423., 96913., 81443.,
82443., 96653., 90653., 96733., 95963., 96903., 96643., 90403.,
84303., 98613., 80463., 96873., 82503., 80113., 97613., 90523.,
97093., 90143., 96793., 98003., 94503., 96513., 97671., 95003.,
80313., 93803., 81233., 99893., 80923., 87202., 93941., 94113.,
81303., 97143., 95103., 99403., 83403., 84613., 85803., 81903.,
89603., 87443., 94413., 94243., 89363., 91833., 94703., 87213.,
82533., 88513., 88023., 82401., 85433., 80833., 81302., 98963.,
83183., 81202., 83173., 91503., 94733., 95391., 93923., 99863.,
99643., 99203., 96703., 81803., 98363., 87003., 91803., 98663.,
98053., 99873., 98973., 99463., 98953., 86303., 99453., 85823.,
84533., 98311., 96993., 89203., 96843., 83193., 81753., 91403.,
97193., 81453., 92101., 81543., 92203., 82493., 95053., 97053.,
84532., 82543., 81603., 85863., 93103., 83413., 97511., 88103.,
90433., 85413., 88403., 82213., 96953., 94513., 93823., 94743.,
93903., 82102., 99833., 83313., 82903., 83503., 83433., 99803.,
84521., 85743., 88523., 96593., 97293., 83833., 81723., 82703.,
98673., 82143., 98263., 83823., 80953., 82632., 83163., 94211.,
91611., 80343., 89633., 98603., 81623., 98403., 85811., 87613.,
88501., 91333., 92613., 81211., 93501., 80823., 80323., 97401.,
92603., 89723., 84523., 88901., 81733., 88583., 99313., 89003.,
85501., 97003., 92433., 90833., 91823., 82633., 83703., 88153.,
92313., 98373., 81401., 93813., 81473., 98013., 83473., 90413.,
92201., 97333., 89403., 95301., 85023., 95061., 88251., 97283.,
84301., 90141., 95803., 89351., 80401., 99751., 88211., 89823.,
85801., 94303., 89413., 83811., 88503., 88573., 80943., 87433.,
81313., 97651., 88301., 80023., 85813., 95051., 87422., 93703.,
86503., 80011., 84023., 99623., 85821., 97503., 89703., 91813.,
89643., 90443., 94713., 97543., 93643., 81713., 95013., 97273.,
91501., 93623., 91301., 94903., 89601., 92403., 95403., 88333.,
95113., 88033., 95083., 92001., 91923., 88943., 98713., 99103.,
87723., 93653., 86221., 88063., 98753., 88221., 91853., 98913.,
98733., 94121., 95123., 89343., 95401., 98743., 89713., 93841.,
89591., 89123., 95381., 93511., 95023., 98723., 97531., 92303.,
88971., 99303., 95223., 88241., 91863., 94723., 89901., 89913.,
86801., 88143., 98273., 90823., 99701., 80812., 81243., 83353.,
92511., 83131., 88981., 81023., 91331., 90513., 84103., 87423.,
83423., 97343., 80043., 99603., 81301., 84093., 80033., 97183.,
92513., 91041., 99613., 89813., 82451., 91873., 90723., 83301.,
80453., 97521., 89023., 92503., 80353., 81201., 85733., 80901.,
85123., 82103., 86421., 91741., 80433., 88553., 96893., 85853.,
83373., 83443., 86933., 85623., 88043., 97553., 83453., 96613.,
91303., 85513., 85833., 81513., 86921., 81433., 92703., 88543.,
86803., 84531., 86901., 85831., 88963., 87611., 87703., 99853.,
97603., 88411., 91933., 88341., 83601., 82313., 93601., 93831.,
88101., 94421., 93901., 94441., 90731., 87803., 99843., 84441.,
97681., 89513., 85883., 97083., 89593., 85921., 82613., 96533.,
98323., 97013., 81743., 80843., 91703., 81503., 98333., 90843.,
97691., 81423., 96553., 80443., 90903., 85253., 97573., 94603.,
88533., 98343., 81223., 92213., 95613., 93713., 83903., 82612.,
84033., 97163., 84133., 99633., 93933., 90623., 85843., 81103.,
95383., 83813., 87453., 93611., 87233., 81531., 94803., 80143.,
92701., 86931., 97413., 80303., 84001., 97583., 84511., 95713.,
94103., 82481., 92423., 90153., 84701., 85143., 85763., 82153.,
85723., 88953., 87743., 85072., 84003., 83323., 98763., 82413.,
97173., 85841., 91943., 95033., 90001., 84731., 83153., 87733.,
81613., 99823., 87403., 90533., 93521., 85851., 87413., 99483.,
89733., 93723., 92523., 87223., 88361., 86311., 80522., 87281.,
80153., 84702., 90551., 91843., 97423., 95393., 88123., 90151.,
95203., 85713., 97661., 95601., 85083., 88351., 87412., 81213.,
91361., 90423., 82423., 85911., 96543., 86331., 83143., 96623.,
84203., 82723., 84083., 96783., 95213., 97623., 98703., 83111.,
97563., 86811., 97403., 86341., 93303., 82803., 95233., 80783.,
88133., 83003., 82421., 89213., 86003., 83463., 81501., 83333.,
81533., 81561., 91953., 81523.])
[ ]:
df_aux.MORFO.unique()
array([81402, 80703, 81403, 84803, 80102, 85003, 85303, 85202, 89303,
86201, 85203, 85002, 83803, 83103, 85603, 80763, 80103, 89803,
89503, 80723, 84403, 80503, 85103, 85703, 80772, 80203, 82113,
80702, 82603, 85901, 88003, 90703, 88903, 85033, 89333, 91001,
85043, 84413, 84603, 87203, 84623, 86231, 82013, 85223, 88013,
84423, 90203, 90603, 85012, 90803, 82303, 82513, 91013, 85423,
80713, 86501, 80903, 80413, 95913, 80513, 82003, 80333, 90201,
80013, 80003, 80001, 84723, 86203, 88323, 90003, 84703, 82012,
87303, 86211, 90801, 95813, 80502, 86301, 82463, 80753, 91203,
90713, 80762, 85403, 82623, 89103, 82302, 80743, 80223, 80983,
81203, 84421, 83843, 90643, 82403, 85233, 85013, 90813, 85042,
91003, 89313, 80053, 84823, 88913, 84013, 85753, 86401, 85133,
84713, 86313, 85032, 80523, 90853, 89361, 85213, 83203, 86403,
86703, 85222, 88053, 89353, 80133, 83233, 90503, 84073, 89013,
81482, 84721, 87463, 83801, 84903, 84503, 87113, 83133, 86343,
84631, 91103, 82453, 85243, 82553, 81413, 89903, 80733, 91053,
95903, 99501, 94403, 98203, 82203, 96503, 98633, 80123, 93913,
98213, 84813, 95603, 95303, 98233, 97033, 96753, 80933, 82473,
96633, 90613, 85503, 80423, 82611, 97313, 94203, 92501, 90642,
80213, 82523, 80913, 80973, 97323, 96673, 96523, 83303, 94013,
96803, 96713, 94003, 88303, 88113, 90633, 83123, 87713, 95953,
96983, 81703, 82433, 94423, 96913, 81443, 82443, 96653, 90653,
96733, 95963, 96903, 96643, 90403, 84303, 98613, 80463, 96873,
82503, 80113, 97613, 90523, 97093, 90143, 96793, 98003, 94503,
96513, 97671, 95003, 80313, 93803, 81233, 99891, 98223, 80923,
87202, 93941, 94113, 81303, 97143, 95103, 99403, 83403, 84613,
85803, 81903, 89603, 87443, 94413, 94243, 89363, 91833, 94703,
87213, 82533, 88513, 88023, 82401, 97023, 85433, 80833, 81302,
98963, 83183, 81202, 83173, 99893, 91503, 94733, 95391, 93923,
99863, 98353, 99643, 99203, 96703, 81803, 98363, 87003, 91803,
98663, 98053, 99873, 98973, 99463, 98953, 86303, 99453, 85823,
84533, 98311, 96993, 89203, 96843, 83193, 81753, 91403, 97193,
81453, 92101, 81543, 92203, 82493, 95053, 97053, 84532, 99503,
82543, 81603, 85863, 93103, 83413, 97511, 88103, 90433, 85413,
88403, 82213, 96953, 94513, 93823, 94743, 93903, 82102, 99833,
83313, 82903, 83503, 83433, 99803, 84521, 85743, 88523, 96593,
97293, 83833, 81723, 82703, 98673, 82143, 98263, 83823, 80953,
82632, 83163, 94211, 91611, 80343, 89633, 98603, 81623, 98403,
85811, 87613, 88501, 91333, 92613, 81211, 93501, 80823, 80323,
97401, 92603, 89723, 84523, 88901, 81733, 88583, 99313, 89003,
85501, 97003, 92433, 90833, 91823, 82633, 83703, 88153, 92313,
98373, 81401, 93813, 81473, 98013, 83473, 90413, 92201, 97333,
89403, 95301, 85023, 95061, 88251, 97283, 84301, 90141, 95803,
89351, 80401, 99751, 88211, 89823, 85801, 94303, 89413, 83811,
88503, 88573, 80943, 87433, 81313, 97651, 88301, 80023, 85813,
95051, 87422, 93703, 86503, 80011, 84023, 99623, 85821, 97203,
89703, 91813, 94213, 89643, 90443, 94713, 97223, 93643, 81713,
95013, 96853, 91501, 93623, 91301, 94903, 89601, 92403, 95403,
96573, 88333, 95113, 88033, 95083, 92001, 91923, 88943, 98713,
99103, 87723, 93653, 86221, 97273, 88063, 98753, 88221, 91853,
98913, 98733, 94121, 95123, 89343, 95401, 98743, 89713, 93841,
97503, 89591, 89123, 95381, 93511, 95023, 98723, 97531, 92303,
88971, 99303, 97543, 95223, 88241, 91863, 94723, 89901, 89913,
86801, 88143, 98273, 90823, 99701, 80812, 81243, 84621, 83353,
92511, 83131, 88981, 81023, 91331, 90513, 84103, 87423, 83423,
97343, 80043, 99603, 81301, 84093, 80033, 97183, 92513, 91041,
99613, 89813, 82451, 91873, 90723, 83301, 80453, 97521, 89023,
92503, 80353, 81201, 85733, 80901, 85123, 82103, 86421, 91741,
80433, 88553, 96893, 85853, 83373, 83443, 86933, 85623, 88043,
97553, 83453, 96613, 91303, 85513, 85833, 81513, 86921, 81433,
92703, 88543, 86803, 84531, 86901, 85831, 88963, 87611, 87703,
99853, 97603, 88411, 91933, 88341, 83601, 82313, 93601, 93831,
88101, 94421, 88231, 93901, 94441, 90731, 87803, 99843, 84441,
97681, 89513, 85883, 97083, 89593, 85921, 99621, 82613, 97113,
96723, 99601, 98243, 97133, 96813, 96533, 98683, 98253, 99611,
99323, 97013, 96763, 81743, 80843, 91703, 98323, 81503, 98333,
90843, 97691, 81423, 96553, 80443, 90903, 85253, 97573, 94603,
88533, 98343, 81223, 92213, 95613, 93713, 83903, 82612, 84033,
97163, 84133, 99633, 93933, 90623, 85843, 81103, 95383, 83813,
87453, 93611, 98933, 96823, 87233, 93931, 96863, 99801, 81531,
94803, 80143, 98303, 92701, 86931, 97413, 96583, 80303, 96933,
84001, 97073, 97063, 96973, 96963, 97583, 84511, 95713, 94103,
82481, 92423, 90153, 84701, 85143, 85763, 82153, 85723, 88953,
87743, 85072, 84003, 83323, 98763, 82413, 97233, 97043, 96833,
97173, 85841, 91943, 95033, 91903, 90001, 84731, 83153, 96923,
87733, 98803, 99831, 81613, 99821, 87403, 90533, 93521, 85851,
87413, 99483, 89733, 93723, 92523, 87223, 88361, 86311, 80522,
87281, 80153, 84702, 90551, 98033, 85113, 91843, 97423, 95393,
88123, 90151, 95203, 85713, 97661, 96943, 95601, 98623, 85083,
98903, 88351, 87412, 99823, 81213, 91361, 90423, 98023, 82423,
85911, 96543, 86331, 83143, 96623, 84203, 82723, 84083, 96783,
94813, 95213, 97623, 84513, 98703, 83111, 97563, 96743, 86811,
97403, 86341, 91341, 99841, 93303, 82803, 95233, 80783, 88133,
83003, 82421, 89213, 86003, 83463, 81501, 98943, 83333, 81533,
84733, 81561, 91953, 81523])
[ ]:
(df_aux.CIDO == df_aux.MORFO).value_counts()
True 940168
False 3492
dtype: int64
[ ]:
df_aux[(df_aux.CIDO == df_aux.MORFO) == False][['MORFO','CIDO']].head(10)
| MORFO | CIDO | |
|---|---|---|
| 628 | 84623 | 84621.0 |
| 740 | 84423 | 84421.0 |
| 812 | 84423 | 84421.0 |
| 1652 | 84423 | 84421.0 |
| 1739 | 84423 | 84421.0 |
| 1793 | 84423 | 84421.0 |
| 1843 | 84623 | 84621.0 |
| 2007 | 84423 | 84421.0 |
| 2016 | 84423 | 84421.0 |
| 2021 | 84423 | 84421.0 |
RRAS: RRAS (int = 200). [1,2,3, … ,16,17,99]
[ ]:
np.sort(df_aux.RRAS.unique())
array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
99])
[ ]:
df_aux.RRAS.value_counts()
6 243705
12 105621
13 103141
9 79553
99 70975
15 59522
10 38266
1 31728
14 31086
17 30800
8 28936
2 27409
5 21975
7 19548
16 18373
4 14259
11 14104
3 4659
Name: RRAS, dtype: int64
Strings¶
UFNASC: UF de nascimento (char = 2). Outras opções: SI - Sem informação; OP - Outro país.
UFRESID: UF de residência (char = 2). Outras opções: OP - Outro país.
CIDADE: Cidade de residência do paciente (char = 200).
[ ]:
df_aux.UFNASC.unique()
array(['SP', 'RJ', 'MG', 'MA', 'AL', 'SE', 'CE', 'PE', 'PR', 'PB', 'BA',
'PI', 'SI', 'OP', 'RS', 'MS', 'ES', 'GO', 'SC', 'AM', 'MT', 'RN',
'TO', 'AP', 'DF', 'PA', 'RR', 'AC', 'RO'], dtype=object)
[ ]:
df_aux.UFRESID.unique()
array(['SP', 'MG', 'TO', 'MS', 'CE', 'BA', 'RO', 'PB', 'AL', 'ES', 'SC',
'PR', 'MA', 'RJ', 'PI', 'RS', 'GO', 'MT', 'PE', 'SE', 'DF', 'PA',
'AM', 'RN', 'RR', 'AC', 'OP', 'AP'], dtype=object)
[ ]:
df_aux.CIDADE.value_counts().head(10)
SAO PAULO 243705
SAO JOSE DO RIO PRETO 17339
CAMPINAS 16972
RIBEIRAO PRETO 16260
GUARULHOS 13592
JAU 11695
BOTUCATU 10102
OSASCO 9686
PIRACICABA 9518
BARRETOS 9334
Name: CIDADE, dtype: int64
FAIXAETAR: Faixa etária do paciente (char = 5).
00-09
10-19
20-29
30-39
40-49
50-59
60-69
70+
[ ]:
df_aux.FAIXAETAR.unique()
array(['40-49', '60-69', '30-39', '70+', '50-59', '20-29', '10-19',
'00-09'], dtype=object)
DRS: Departamentos Regionais de Saúde (char = 200).
DRS 01 SĂO PAULO
DRS 15 SĂO JOSÉ DO RIO PRETO
DRS 06 BAURU
DRS 07 CAMPINAS
DRS 09 MARÍLIA
DRS 13 RIBEIRĂO PRETO
DRS 10 PIRACICABA
DRS 17 TAUBATÉ
DRS 16 SOROCABA
DRS 05 BARRETOS
DRS 03 ARARAQUARA
DRS 02 ARAÇATUBA
DRS 04 SANTOS
DRS 14 SĂO JOĂO DA BOA VISTA
DRS 08 FRANCA
DRS 11 PRESIDENTE PRUDENTE
DRS 12 REGISTRO
[ ]:
df_aux.DRS.unique()
array(['DRS 14 SĂO JOĂO DA BOA VISTA', 'DRS 07 CAMPINAS',
'DRS 13 RIBEIRĂO PRETO', nan, 'DRS 10 PIRACICABA',
'DRS 01 SĂO PAULO', 'DRS 17 TAUBATÉ', 'DRS 16 SOROCABA',
'DRS 03 ARARAQUARA', 'DRS 04 SANTOS', 'DRS 06 BAURU',
'DRS 15 SĂO JOSÉ DO RIO PRETO', 'DRS 12 REGISTRO',
'DRS 09 MARÍLIA', 'DRS 02 ARAÇATUBA',
'DRS 11 PRESIDENTE PRUDENTE', 'DRS 08 FRANCA',
'DRS 05 BARRETOS'], dtype=object)
[ ]:
df_aux.DRS.isna().sum()
70975
DESCTOPO: Descrição da Topografia (char = 80).
DESCMORFO: Descrição da morfologia (char = 80).
DSCCIDO: Descrição da morfologia 3ª Edição (char = 89).
CICISUBGRU: Tumor infantil – Sub grupo (char = 80). [Descrição com letras e nome do tumor]
INSTORIG: Instituição de origem (char = 200). Obrigatório somente se DIAGPREV = 03 – COM DIAGNÓSTICO / COM TRATAMENTO
[ ]:
df_aux.DESCTOPO.value_counts().head(10)
PELE DE OUTRAS PARTES E DE PARTES NAO ESPECIFICADAS DA FACE 100718
PROSTATA 100166
MAMA SOE EXCLUI PELE DA MAMA C445 51634
COLO DO UTERO 43448
MEDULA OSSEA 33553
MAMA QUADRANTE SUPERIOR EXTERNO DA 30512
PELE DO OMBRO E MEMBROS SUPERIORES 27308
RETO SOE 26979
PELE DO TRONCO 22454
PULMAO SOE 21971
Name: DESCTOPO, dtype: int64
[ ]:
df_aux.DESCMORFO.value_counts().head(10)
CARCINOMA ESCAMOCELULAR SOE 148805
ADENOCARCINOMA SOE 131221
CARCINOMA BASOCELULAR SOE 97765
CARCINOMA DUCTAL INFILTRANTE SOE 91999
CARCINOMA DE CELULAS ACINOSAS 64829
ADENOCARCINOMA TUBULAR 28346
CARCINOMA BASOCELULAR NODULAR 23730
CARCINOMA SOE 23522
CARCINOMA ESCAMOCELULAR IN SITU SOE 16637
ADENOCARCINOMA PAPILAR SOE 10133
Name: DESCMORFO, dtype: int64
[ ]:
df_aux.DSCCIDO.value_counts().head(10)
CARCINOMA ESCAMOCELULAR SOE 152682
ADENOCARCINOMA SOE 131221
CARCINOMA BASOCELULAR SOE 97765
CARCINOMA DUCTAL INFILTRANTE SOE 92006
CARCINOMA DE CELULAS ACINOSAS 64829
ADENOCARCINOMA TUBULAR 28346
CARCINOMA BASOCELULAR NODULAR 23730
CARCINOMA SOE 23522
CARCINOMA ESCAMOCELULAR IN SITU SOE 17026
ADENOCARCINOMA PAPILAR SOE 10133
Name: DSCCIDO, dtype: int64
[ ]:
(df_aux.DESCMORFO == df_aux.DSCCIDO).value_counts()
True 909031
False 34629
dtype: int64
[ ]:
df_aux[(df_aux.DESCMORFO == df_aux.DSCCIDO) == False][['DESCMORFO','DSCCIDO']].head(10)
| DESCMORFO | DSCCIDO | |
|---|---|---|
| 16 | SARCOMA DO ESTROMA ENDOMETRIAL | SARCOMA DO ESTROMA ENDOMETRIAL SOE |
| 291 | NEOPLASIA INTRAEPITELIAL GRAU III DE COLO UTER... | NEOPLASIA INTRAEPITELIAL ESCAMOSA GRAU III |
| 338 | TUMOR DO ESTROMA DOS CORDOES SEXUAISL | TUMOR DO ESTROMA DOS CORDOES SEXUAIS SOE |
| 628 | CISTADENOMA SEROSO PAPILAR DE MALIGNIDADE LIMI... | TUMOR CISTICO PAPILAR SEROSO DE MALIGNIDADE LI... |
| 740 | CISTADENOMA SEROSO DE MALIGNIDADE LIMITROFE \"... | CISTADENOMA SEROSO DE MALIGNIDADE LIMITROFE BO... |
| 812 | CISTADENOMA SEROSO DE MALIGNIDADE LIMITROFE \"... | CISTADENOMA SEROSO DE MALIGNIDADE LIMITROFE BO... |
| 1652 | CISTADENOMA SEROSO DE MALIGNIDADE LIMITROFE \"... | CISTADENOMA SEROSO DE MALIGNIDADE LIMITROFE BO... |
| 1739 | CISTADENOMA SEROSO DE MALIGNIDADE LIMITROFE \"... | CISTADENOMA SEROSO DE MALIGNIDADE LIMITROFE BO... |
| 1759 | CARCINOMA PSEUDOSARCOMATOSO | CARCINOMA PSEUDOSSARCOMATOSO |
| 1763 | TUMOR FILODES SOE | TUMOR FILODES MALIGNIDADE LIMITROFE |
[ ]:
df_aux.CICISUBGRU.unique()
array([nan, 'F OUTROS CARCINOMAS E CARCINOMAS NAO ESPECIFICADOS',
'C TUMORES MALIGNOS DE CELULAS GERMINATIVAS GONADAIS',
'B TUMORES MALIGNOS DE CELULAS GERMINATIVAS EXTRACRANIANAS E EXTRAGONADAIS',
'E OUTROS TUMORES GONADAIS MALIGNOS E TUMORES GONADAIS NAO ESPECIFICADOS',
'D OUTROS SARCOMAS DE TECIDOS MOLES ESPECIFICADOS OUTROS SARCOMAS DE PARTES MOLES ESPECIFICADOS',
'D CARCINOMAS GONADAIS',
'E SARCOMAS DE TECIDOS MOLES NAO ESPECIFICADOS SARCOMAS DE PARTES MOLES NAO ESPECIFICADOS',
'A RABDOMIOSSARCOMAS RABDOMIOSSARCOMA E SARCOMA EMBRIONARIO',
'B OUTROS TUMORES MALIGNOS NAO ESPECIFICADOS',
'A OUTROS TUMORES MALIGNOS ESPECIFICADOS',
'A LEUCEMIAS LINFOIDES',
'A EPENDIMOMAS E TUMOR DO PLEXO COROIDE EPENDIMOMAS',
'B LINFOMAS NAOHODGKIN EXCETO LINFOMA DE BURKITT',
'A LINFOMAS DE HODGKIN DOENCA DE HODGKIN',
'B CARCINOMA DE TIREOIDE',
'A NEUROBLASTOMA E GANGLIONEUROBLASTOMA',
'B LEUCEMIAS MIELOIDES AGUDAS lEUCEMIAS NAO LINFOCITICAS AGUDAS',
'B ASTROCITOMAS', 'D OUTROS GLIOMAS', 'A RETINOBLASTOMA',
'A NEFROBLASTOMA E OUTROS TUMORES RENAIS NAO EPITELIAIS TUMOR DE WILMSTUMOR RABDOIDE E SARCOMA DE CELULAS CLARAS',
'A OSTEOSSARCOMAS',
'C TUMORES EMBRIONARIOS INTRACRANIANOS E INTRAESPINHAIS TUMORES NEUROECTODERMICOS PRIMITIVOS',
'D SINDROME MIELODISPLASICA E OUTRAS DOENCAS MIELOPROLIFERATIVAS',
'C DOENCAS CRONICAS MIELOPROLIFERATIVAS', 'C LINFOMA DE BURKITT',
'B CONDROSSARCOMAS',
'A TUMORES DE CELULAS GERMINATIVAS INTRACRANIANOS E INTRAESPINHAIS',
'F NEOPLASIAS INTRACRANIANAS E INTRAESPINHAIS NAO ESPECIFICADAS',
'C CARCINOMA DE NASOFARINGE',
'E OUTRAS NEOPLASIAS INTRACRANIANAS E INTRAESPINHAIS ESPECIFICADAS',
'C TUMORES RENAIS MALIGNOS NAO ESPECIFICADOS',
'E TUMORES OSSEOS MALIGNOS NAO ESPECIFICADOS',
'B CARCINOMAS RENAIS',
'E LEUCEMIAS ESPECIFICADAS E OUTRAS NAO ESPECIFICADAS',
'B FIBROSSARCOMAS TUMORES DA BAINHA DO NERVO PERIFERICO E OUTRAS NEOPLASIAS FIBROMATOSAS',
'D MELANOMA MALIGNO', 'E CARCINOMAS DE PELE',
'D MISCELANIA DE NEOPLASIAS LINFORETICULARES',
'C TUMOR DE EWING E SARCOMAS OSSEOS RELACIONADOS SARCOMA DE EWING',
'A HEPATOBLASTOMA', 'B HEPATOCARCINOMA',
'A CARCINOMA DE CORTEX ADRENAL',
'B OUTROS TUMORES DE CELULAS NERVOSAS PERIFERICAS OUTROS TUMORES DO SISTEMA NERVOSO SIMPATICO',
'D OUTROS TUMORES OSSEOS MALIGNOS ESPECIFICADOS',
'E LINFOMAS NAO ESPECIFICADOS',
'C TUMORES HEPATICOS MALIGNOS NAO ESPECIFICADOS',
'C SARCOMA DE KAPOSI'], dtype=object)
[ ]:
df_aux.INSTORIG.unique()
array([nan, '020400 ASSOC FORN CANA DE PIRACICABA',
'020737 FUND PIO XII', '999999 GOP', '999999 IGNORADO',
'999999 AFIP GUARULHOS',
'999999 INSTITUTO RH DE HEMATOLOGIA HEMOTERAPIA E QUIMIOTERAPIA',
'000008 HOSP ISRAELITA ALBERT EINSTEIN', '999999 HOSPITAL LUZ',
'999999 HOSPITAL SEPACO', '999999 HOSPITAL BRIGADEIRO',
'999999 HOSPITAL REGIONAL DE OSASCO', '999999 HOSPITAL SAO LUIZ',
'999999 CASA DE SAUDE SANTOS', '999999 HOSP CARLOS CHAGAS',
'999999 HOSPITAL BENEFICENCIA PORTUGUESA', '016411 IBCC',
'999999 HOSP PAULISTANO', '999999 IBCC',
'999999 HOSPITAL METROPOLITANO', '999999 HOSPITAL SANTA RITA',
'999999 HOSPITAL SAO CARLOS', '019054 HOSP REG VALE DO PARAIBA',
'999999 HOSP REGIONAL DO VALE DO PARAIBA',
'999999 SANTA CASA DE MISERICORDIA', '999999 HOSP SOBAM',
'999999 HOSP PAULO SACRAMENTO', '999999 CLINICA BRAGALHA',
'999999 BRAGALHA', '999999 IAP', '999999 CESM',
'999999 CPC PATOLOGIA OLIMPIA', '999999 AME BARRETOS',
'999999 SANTA CASA DE BARRETOS', '999999 AME DE JALES SP',
'999999 UNIMED', 'HC RIBEIRĂO PRETO SP',
'FUNDACAO SANTA CASA DE MISERICORDIA DE FRANCA',
'FUNDACAO SANTA CASA MISERICORDIA DE FRANCA',
'FUNDAÇĂO SANTA CASA MISERICORDIA DE FRANCA',
'FUNDACAO SANTA CASA MSIERICORDIA DE FRANCA',
'FUNDACAO SANTA CASA MSERICORDIA DE FRANCA',
'FUDNAÇĂO SANTA CASA MISERICORDIA DE FRANCA',
'FUNDACAO SANTA CASA MISERICORDIA DE FRACA',
'FUNDAÇĂO SANTA CASA MSIERICORDIA DE FRANCA',
'FUNDAÇĂO SANTA CASA MISERICÓRDIA DE FRANCA', 'CONVĘNIO IAMSPE',
'AME FRANCA', 'HOSPITAL REGIONAL FRANCA',
'FUNDAÇAO SANTA CASA MISERICORDIA DE FRANCA',
'999999 CLINICA PARTICULAR',
'999999 CONSULTORIO PARTICULAR JAU',
'999999 CENTRO DE SAUDE SANTA CRUZ DO RIO PARDO',
'999999 C S LUCELIA II', '999999 PARAGUAÇU PAULISTA SANTA CASA',
'999999 LEME SANTA CASA',
'999999 ANGATUBA CONSULTORIO DR LUIZ ANTONIO',
'999999 ITAPEVA AMBULATORIO DERMATOLOGIA',
'999999 ASSIS HOSP MATERNIDADE',
'999999 BOTUCATU CLINICA SAAD',
'999999 RIO CLARO CONSULTORIO PARTICULAR',
'999999 CLINICA PARTICULAR EM AVARE',
'999999 SANTA CASA CANDIDO MOTA',
'999999 CENTRO DE SAUDE RANCHARIA',
'999999 SANTA CASA TIETE', '999999 SANTA CASA JAU',
'999999 CONSULTORIO PARTICULAR SAO MANUEL',
'999999 PIRASSUNUNGA CONSULTORIO PARTICULAR',
'022950 HOSP CLINICAS DE MARILIA', '019100 SANTA CASA DE AVARE',
'999999 MUZAMBIMNHO MG', '999999 TUPĂ CONSULTORIO',
'999999 JAU SANTA CASA', '999999 BAURU HOSPITAL UNIMED',
'999999 POLICLIN MENKS ANGATUBA',
'999999 HOSPITAL UNIMED AVARE',
'999999 CONSULTORIO DE DERMATOLOGIA JAU',
'999999 CONSULTORIO PARTICULAR ARARAQUARA',
'999999 BAURU ASSOC HOSPITALAR DE BAURU',
'999999 PIRACICABA AME', '999999 SANTA CASA DE JAU',
'999999 HOSP SAO PAULO UNIMED ARARAQUARA',
'999999 SANTA CASA DE DRACENA', '999999 HOSP GERAL DE PROMISSAO',
'999999 CENTRO DE SAUDE IBITINGA',
'999999 HOSP UNIMED DE BAURU', '999999 BOITUVA',
'999999 DR ARNALDO WAGNER DOS SANTOS',
'999999 AME AMBULATORIO MEDICO DE ESPECIALIDADES',
'999999 CLINICA DERMATOLOGICA LINS', '999999 LAB MARICONDI',
'999999 JAU CONSULTORIO PARTICULAR',
'999999 DR MARCIO RIO CLARO', '020621 SANTA CASA DE ARARAQUARA',
'999999 SANTA CASA DE SALTO',
'999999 DRA LUCELIA MARIA DUTRA PINTO SAGRES',
'999999 SOCIEDADE DE BENEFICIENCIA PIRAJU',
'999999 AME AMBULATORIO MED DE ESPECIALIDADES DRACENA',
'999999 CONSULTORIO PARTICULAR BARIRI',
'999999 SANTA CASA DE BATAGUASSU', '019160 HOSP CLINICAS UNESP',
'999999 TUPI PAULISTA CLINICA PARTICULAR',
'999999 JAU POLICLÍNICA',
'999999 LABORATORIO DE SAO JOSE DO RIO PRETO',
'999999 ASSIS AMBULATORIO DE ESPECIALIDADES', '999999 BROTAS',
'999999 ITU AEMII', '999999 ADAMANTINA', '999999 ARARAQUARA',
'999999 SANTA CASA DE PENAPOLIS', '999999 CLINICA SAO LUCAS',
'999999 SANTA CASA DE LEME', '000010 HOSP ESTADUAL DE BAURU',
'999999 DRA JULIANA ROTHER DOIS CORREGOS',
'999999 LABORATORIO DE ANALISES CLINICAS RIBEIRAO BRANCO',
'999999 CENTRO DE SAUDE II IBITINGA',
'999999 INST LAURO DE SOUZA LIMA',
'999999 CONSULTORIO PARTICULAR RIO CLARO',
'999999 HOSP DE PIRAJU', '999999 SANTA CASA DE AGUAI',
'999999 CONSULTORIO PARTICULAR OURINHOS',
'999999 LABORATORIO DR GILBERTO RIO CLARO', '999999 OURINHOS',
'999999 INSTITUIÇAO CARLOS ALBERTO CAVALLINI MENECHINO',
'999999 CLINICA DE DERMATOLOGIA LENCOIS PAULISTA',
'999999 CENTRO DE SAUDE DE JUNQUEIROPOLIS',
'999999 CS SANTA GERTRUDES',
'999999 CLINICA DR REINALDO DE BRITO',
'999999 HOSP SAO FRANCISCO DE AMERICANA',
'999999 ASSISSP CONSULTORIO DR CARLOS',
'999999 SAO CARLOS DR JOSE ROBERTO C ALVAREZ',
'999999 IBITINGA',
'999999 CONSULT DR CASSIO EDVAN PAULINO DA SILVA',
'999999 SANTA CASA DE PIRASSUNUNGA',
'999999 FUNDACAO MUNICIPAL DE ENSINO SUPERIOR MARILIA',
'999999 SANTA CASA DE IBITINGA',
'999999 AMBULATORIO DE ESPECIALIDADES ASSIS',
'999999 DR LUIZ H RODRIGUES',
'999999 DR PAULO TEIXEIRA JUNIOR ASSIS',
'999999 CLINICA DIA HOSP DOS FORNEC DE CANA PIRACICABA',
'999999 LABORATORIA BACCHI', '999999 HEMOSC SC', '999999 BURI',
'999999 UNIMED IBITINGA',
'999999 HOSPITAL SANTA CASA DE PALMITAL',
'999999 CENTRO DE SAUDE DE OSVALDO CRUZ',
'999999 DRA SILVIA MARIA LARA DE LIMA GUIMARAES',
'999999 CENTRO DE SAUDE DRACENA',
'999999 LABORATORIO SANTA ROSA BOA VISTARR',
'999999 DR WAGNER RODRIGO C OLIVEIRA', '999999 FORTALEZA',
'999999 DR FABIANA SANCHES ZIROLDO ITAPOLIS',
'999999 DRŞ ANA PAULA FARIAS JORGE',
'999999 DR MARIANA CAROLINA R MONTEIRO ARACATUBA',
'999999 LABORATORIO SAO LUCAS ESPIRITO SANTO DO PINHAL',
'999999 HOSPITAL SAO JOSE BARRABONITA',
'999999 SANTA CASA JAU SP', '999999 DR ORLEY ALCEU CAMARGO',
'999999 OUTROS', '275513 HOSP REGIONAL DE PRESIDENTE PRUDENTE',
'999999 UNIMED DE SAO PAULO', '009385 SANTA CASA DE SAO PAULO',
'208259 HOSP MARCIA BRAIDO', '008672 HOSP SANTA MARCELINA',
'000018 ITACI', '999999 SEM INFORMAÇĂO DO LOCAL',
'999999 HOSP DE OSASCO', '999999 SEM INFORMAÇĂO',
'017108 HOSP HELIOPOLIS',
'999999 HOSP ESTADUAL DE VILA ALPINA ORG SOCIAL SECONCI SAO PAUL',
'000014 HOSP SIRIO LIBANES',
'999999 HOSP GERAL DE ITAPEVI SANATORINHOS',
'999999 HOSPITAL MANDAQUI', '999999 A C CAMARGO',
'999999 HOSPITAL ALVORADA', '999999 CONJ HOSPITALAR MANDAQUI',
'999999 CASA DA MULHER DINALVA SOUZA BARCELLOS',
'999999 HOSPITAL GERAL DE ITAPEVI',
'999999 HOSPITAL MUNICIPAL DE BARUERI',
'999999 HOSPITAL REGIONAL DE COTIA', '999999 HOSPITAL BUTANTA',
'999999 HOSPITAL GERAL DE CARAPUCUIBA',
'999999 HOSPITAL MUNICIPAL CENTRO OSASCO',
'999999 HOSP GERAL DE ITAPEVI', '999999 HOSPITAL ANTONIO GIGLIO',
'037680 HOSP IPIRANGA', '999999 HOSPITAL SAO LUCAS BAURU',
'999999 HOSPITAL GRAJAU', '999999 HOSP POLICIA MILITAR'],
dtype=object)
Categorias com letras e números¶
TOPO: Código da topografia (char = 4). Formato: C999
TOPOGRUP: Grupo da topografia (char = 3). Formato: C99
[ ]:
df_aux.TOPO.nunique()
331
[ ]:
df_aux.TOPOGRUP.unique()
array(['C53', 'C54', 'C50', 'C51', 'C56', 'C52', 'C55', 'C58', 'C18',
'C80', 'C77', 'C44', 'C48', 'C57', 'C76', 'C24', 'C34', 'C16',
'C17', 'C21', 'C64', 'C67', 'C61', 'C71', 'C42', 'C20', 'C05',
'C00', 'C72', 'C12', 'C47', 'C70', 'C15', 'C02', 'C32', 'C10',
'C07', 'C09', 'C62', 'C25', 'C38', 'C41', 'C40', 'C04', 'C06',
'C73', 'C19', 'C01', 'C49', 'C69', 'C22', 'C68', 'C31', 'C11',
'C13', 'C74', 'C30', 'C65', 'C23', 'C37', 'C66', 'C60', 'C03',
'C33', 'C08', 'C75', 'C63', 'C14', 'C26', 'C39'], dtype=object)
META01: Metástase (char = 3). Formato: C99
META02: Metástase (char = 3). Formato: C99
META03: Metástase (char = 3). Formato: C99
META04: Metástase (char = 3). Formato: C99
[ ]:
print(df_aux.META01.isna().sum())
print(df_aux.META02.isna().sum())
print(df_aux.META03.isna().sum())
print(df_aux.META04.isna().sum())
819742
906058
931625
940226
REC01: Local da recidiva/metástase (char = 3). Formato: C99
REC02: Local da recidiva/metástase (char = 3). Formato: C99
REC03: Local da recidiva/metástase (char = 3). Formato: C99
REC04: Local da recidiva/metástase (char = 3). Formato: C99
[ ]:
print(df_aux.REC01.isna().sum())
print(df_aux.REC02.isna().sum())
print(df_aux.REC03.isna().sum())
print(df_aux.REC04.isna().sum())
884451
926829
938376
942239
EC: Estadio clínico (char = 5). [0,IIIB,IA, …]
ECGRUP: Grupo do estadiamento clínico (char = 3). [0,I,II,III,IV,Y,X]
[ ]:
np.sort(df_aux.EC.unique())
array(['0', '0A', '0IS', 'I', 'IA', 'IA1', 'IA2', 'IB', 'IB1', 'IB2',
'IC', 'II', 'IIA', 'IIA1', 'IIA2', 'IIB', 'IIC', 'III', 'IIIA',
'IIIB', 'IIIC', 'IIIC1', 'IIIC2', 'IS', 'IV', 'IVA', 'IVB', 'IVC',
'X', 'Y'], dtype=object)
[ ]:
np.sort(df_aux.ECGRUP.unique())
array(['0', 'I', 'II', 'III', 'IV', 'X', 'Y'], dtype=object)
T: Classificação TNM - T (char = 5). [0,1,3A,IS,PAGET, …]
N: Classificação TNM - N (char = 5). [0,X,Y,PN0,2C, …]
M: Classificação TNM - M (char = 3). [0,1,1A,1B,1C,X,Y]
[ ]:
np.sort(df_aux['T'].unique())
array(['0', '1', '1A', '1B', '1C', '1MIC', '2', '2A', '2B', '2C', '3',
'3A', '3B', '3C', '4', '4A', '4B', '4C', '4D', '4E', 'A', 'CDIS',
'CLIS', 'IS', 'PAGET', 'X', 'Y'], dtype=object)
[ ]:
np.sort(df_aux['N'].unique())
array(['0', '1', '1A', '1B', '1C', '2', '2A', '2B', '2C', '3', '3A', '3B',
'3C', 'CN0', 'PN0', 'X', 'Y'], dtype=object)
[ ]:
np.sort(df_aux['M'].unique())
array(['0', '1', '1A', '1B', '1C', 'X', 'Y'], dtype=object)
PT: Estadiamento pós cirúrgico (char = 5). [1,2,X,Y,IS,2A, …]
PN: Estadiamento pós cirúrgico (char = 5). [0,1,1A,2C, …]
PM: Estadiamento pós cirúrgico (char = 3). [0,1,1A,1B,1C,M0,X,Y]
[ ]:
df_aux['PT'].unique()
# IC e 1C
array(['IS', 'X', nan, '2', '1', '4D', 'Y', '3', '1B', '4B', '3A', '1A',
'1A2', '4A', '1A1', '2B', '1B1', '3B', '4C', '3C', '1C', '4', '0',
'2A', '2C', '1B2', '1MIC', '< ...', 'A', 'CDIS', '4E', 'IC', 'PIS',
'PAGET', 'CLIS', 'T2', 'T4B', 'T3B', 'T3', 'T1B', 'T1C', 'T1A',
'y', '4b', '2b', '3a', 'AD', 1.0], dtype=object)
[ ]:
df_aux[df_aux['PT'] == '< ...'].shape
(1895, 95)
[ ]:
df_aux.PN.unique()
array(['0', 'X', nan, '1', '2', 'Y', '3', '3A', '2A', '2B', '3C', '3B',
'< ...', '1B', '2C', '1A', '1C', 0.0, 'N0', 'N3', 'N2B', 'N1',
'1Bi', 'PN0', '2c', 'O', '1B1', 'IBII'], dtype=object)
[ ]:
df_aux[df_aux['PN'] == '< ...'].shape
(1910, 95)
[ ]:
df_aux.PM.unique()
array(['0', 'X', nan, 'Y', '1', '1B', '< .', '1A', '1C', 0.0, 'M0'],
dtype=object)
[ ]:
df_aux[df_aux['PM'] == '< .'].shape
(1922, 95)
OUTRACLA: Outra classificação de estadiamento (char = 20). [Grau 3, Grau I, Grau III, Clark II, …]
CICI: Tumor infantil (char = 5). [IA,VIIIA,XIF,IIC,IVB, …]
[ ]:
# Preenchidos OUTRACLA
df_aux.shape[0] - df_aux.OUTRACLA.isna().sum()
60799
[ ]:
### GRAU II, GRAU 2, G 2, G II
df_aux.OUTRACLA.value_counts().head(20)
GRAU II 6005
GRAU 2 4368
GRAU III 4160
GRAU 3 3451
GRAU I 2962
GRAU 1 2674
GLEASON 6 1810
GLEASON 7 1725
G II 1155
IV 842
DUKES C 734
G2 623
DUKES B 622
G III 522
G 2 494
GRAU 7 439
ALTO RISCO 433
III 428
GRAU 6 427
EC IV 372
Name: OUTRACLA, dtype: int64
[ ]:
df_aux.CICI.unique()
array([nan, 'XIF', 'XC', 'XB', 'XE', 'IXD', 'XD', 'IXE', 'IXA', 'XIIB',
'XIIA', 'IA', 'IIIA', 'IIB', 'IIA', 'XIB', 'IVA', 'IB', 'IIIB',
'IIID', 'VA', 'VIA', 'VIIIA', 'IIIC', 'ID', 'IC', 'IIC', 'VIIIB',
'XA', 'IIIF', 'XIC', 'IIIE', 'VIC', 'VIIIE', 'VIB', 'IE', 'IXB',
'XID', 'XIE', 'IID', 'VIIIC', 'VIIA', 'VIIB', 'XIA', 'IVB',
'VIIID', 'IIE', 'VIIC', 'IXC'], dtype=object)
CICIGRUP: Tumor infantil – Grupo (char = 80). [I,II,III, … ,XI,XII]
[ ]:
df_aux.CICIGRUP.unique()
array([nan,
'XI OUTROS NEOPLASMAS MALIGNOS EPITELIAIS E OUTROS MELANOMAS MALIGNOS',
'X TUMORES DE CELULAS GERMINATIVAS TUMORES TROFOBLASTICOS E NEOPLASIAS GONADAIS',
'IX TECIDOS MOLES E OUTROS SARCOMAS EXTRAOSSEOS',
'XII OUTRAS NEOPLASIAS MALIGNAS E NAO ESPECIFICADAS',
'I LEUCEMIAS DOENCAS MIELOPROLIFERATIVAS E DOENCAS MIELODISPLASICAS',
'III SNC E MISCELANIA DE NEOPLASIAS INTRACRANIANAS E INTRAESPINHAIS',
'II LINFOMAS E NEOPLASIAS RETICULOENDOTELIAIS',
'IV NEUROBLASTOMA E OUTROS TUMORES DE CELULAS NERVOSAS PERIFERICAS TUMORES DO SISTEMA NERVOSO SIMPATICO',
'V RETINOBLASTOMA', 'VI TUMORES RENAIS',
'VIII TUMORES OSSEOS MALIGNOS', 'VII TUMORES HEPATICOS'],
dtype=object)
Salvando os dados¶
[ ]:
df = variables_preprocessing(df_aux)
df.head()
| ESCOLARI | IDADE | SEXO | UFRESID | IBGE | CATEATEND | DTCONSULT | CLINICA | DIAGPREV | DTDIAG | BASEDIAG | TOPO | TOPOGRUP | MORFO | EC | ECGRUP | T | N | M | PT | PN | PM | G | LOCALTNM | IDMITOTIC | PSA | GLEASON | META01 | META02 | META03 | META04 | DTTRAT | NAOTRAT | TRATAMENTO | TRATHOSP | TRATFANTES | TRATFAPOS | NENHUM | CIRURGIA | RADIO | QUIMIO | HORMONIO | TMO | IMUNO | OUTROS | NENHUMANT | CIRURANT | RADIOANT | NENHUMAPOS | CIRURAPOS | RADIOAPOS | QUIMIOAPOS | HORMOAPOS | TMOAPOS | IMUNOAPOS | OUTROAPOS | DTULTINFO | ULTINFO | CONSDIAG | TRATCONS | DIAGTRAT | ANODIAG | CICI | CICIGRUP | FAIXAETAR | LATERALI | DRS | RRAS | PERDASEG | DTRECIDIVA | RECNENHUM | RECLOCAL | RECREGIO | RECDIST | REC01 | REC02 | REC03 | REC04 | IBGEATEN | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 4 | 40.0 | 2 | SP | 3530805 | 9 | 2000-01-03 | 15 | 1 | 2000-01-10 | 3 | C539 | C53 | 81402 | 0 | 0 | X | X | 0 | IS | 0 | 0 | 8 | 8 | 8 | 8 | 8 | **Sem informação** | **Sem informação** | **Sem informação** | **Sem informação** | 07/04/2000 | 8 | A | A | J | J | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2016-09-13 | 2 | 7 | 95.0 | 88.0 | 2000 | **Sem informação** | **Sem informação** | 40-49 | 8 | 14 | 15 | 1 | NaN | 1 | 0 | 0 | 0 | **Sem informação** | **Sem informação** | **Sem informação** | **Sem informação** | 3509502 |
| 1 | 9 | 45.0 | 2 | SP | 3509502 | 9 | 2000-01-05 | 15 | 1 | 2000-01-17 | 3 | C539 | C53 | 80703 | IIIB | III | X | X | 0 | X | X | X | 8 | 8 | 8 | 8 | 8 | **Sem informação** | **Sem informação** | **Sem informação** | **Sem informação** | 20/01/2000 | 8 | F | F | J | J | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2002-08-25 | 3 | 12 | 15.0 | 3.0 | 2000 | **Sem informação** | **Sem informação** | 40-49 | 8 | 7 | 15 | 0 | NaN | 1 | 0 | 0 | 0 | **Sem informação** | **Sem informação** | **Sem informação** | **Sem informação** | 3509502 |
| 2 | 2 | 63.0 | 2 | SP | 3509502 | 9 | 2000-01-19 | 15 | 1 | 2000-01-25 | 3 | C539 | C53 | 80703 | IIIB | III | X | X | 0 | X | X | X | 8 | 8 | 8 | 8 | 8 | **Sem informação** | **Sem informação** | **Sem informação** | **Sem informação** | 03/02/2000 | 8 | B | B | J | J | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2001-03-20 | 3 | 6 | 15.0 | 9.0 | 2000 | **Sem informação** | **Sem informação** | 60-69 | 8 | 7 | 15 | 0 | NaN | 1 | 0 | 0 | 0 | **Sem informação** | **Sem informação** | **Sem informação** | **Sem informação** | 3509502 |
| 3 | 9 | 64.0 | 2 | SP | 3545803 | 9 | 2000-01-28 | 15 | 1 | 2000-02-03 | 3 | C539 | C53 | 80703 | IIIB | III | X | X | 0 | X | X | X | 8 | 8 | 8 | 8 | 8 | **Sem informação** | **Sem informação** | **Sem informação** | **Sem informação** | 01/03/2000 | 8 | B | B | J | J | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2002-07-15 | 3 | 6 | 33.0 | 27.0 | 2000 | **Sem informação** | **Sem informação** | 60-69 | 8 | 7 | 15 | 0 | NaN | 1 | 0 | 0 | 0 | **Sem informação** | **Sem informação** | **Sem informação** | **Sem informação** | 3509502 |
| 4 | 1 | 48.0 | 2 | SP | 3530805 | 9 | 2000-01-04 | 15 | 2 | 2000-01-04 | 3 | C539 | C53 | 80703 | IIIB | III | X | X | 0 | X | X | X | 8 | 8 | 8 | 8 | 8 | **Sem informação** | **Sem informação** | **Sem informação** | **Sem informação** | 15/05/2000 | 8 | B | B | J | J | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2016-03-10 | 2 | 0 | 132.0 | 132.0 | 2000 | **Sem informação** | **Sem informação** | 40-49 | 8 | 14 | 15 | 1 | NaN | 1 | 0 | 0 | 0 | **Sem informação** | **Sem informação** | **Sem informação** | **Sem informação** | 3509502 |
[ ]:
df.shape
(943660, 79)
[ ]:
df.isna().sum().sort_values(ascending=False).head(8)
DTRECIDIVA 848760
TRATCONS 74896
DTTRAT 74896
DIAGTRAT 74896
DTULTINFO 45
IDADE 1
PSA 0
PT 0
dtype: int64
[ ]:
save_csv(df, '/content/drive/MyDrive/Trabalho/Cancer/Datasets/cancer_preprocessing_dates.csv')
Arquivo csv salvo com sucesso!
Criação de labels e features¶
[ ]:
df = read_csv('/content/drive/MyDrive/Trabalho/Cancer/Datasets/cancer_preprocessing_dates.csv')
df.head()
(943660, 79)
| ESCOLARI | IDADE | SEXO | UFRESID | IBGE | CATEATEND | DTCONSULT | CLINICA | DIAGPREV | DTDIAG | BASEDIAG | TOPO | TOPOGRUP | MORFO | EC | ECGRUP | T | N | M | PT | PN | PM | G | LOCALTNM | IDMITOTIC | PSA | GLEASON | META01 | META02 | META03 | META04 | DTTRAT | NAOTRAT | TRATAMENTO | TRATHOSP | TRATFANTES | TRATFAPOS | NENHUM | CIRURGIA | RADIO | QUIMIO | HORMONIO | TMO | IMUNO | OUTROS | NENHUMANT | CIRURANT | RADIOANT | NENHUMAPOS | CIRURAPOS | RADIOAPOS | QUIMIOAPOS | HORMOAPOS | TMOAPOS | IMUNOAPOS | OUTROAPOS | DTULTINFO | ULTINFO | CONSDIAG | TRATCONS | DIAGTRAT | ANODIAG | CICI | CICIGRUP | FAIXAETAR | LATERALI | DRS | RRAS | PERDASEG | DTRECIDIVA | RECNENHUM | RECLOCAL | RECREGIO | RECDIST | REC01 | REC02 | REC03 | REC04 | IBGEATEN | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 4 | 40.0 | 2 | SP | 3530805 | 9 | 2000-01-03 | 15 | 1 | 2000-01-10 | 3 | C539 | C53 | 81402 | 0 | 0 | X | X | 0 | IS | 0 | 0 | 8 | 8 | 8 | 8 | 8 | **Sem informação** | **Sem informação** | **Sem informação** | **Sem informação** | 07/04/2000 | 8 | A | A | J | J | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2016-09-13 | 2 | 7 | 95.0 | 88.0 | 2000 | **Sem informação** | **Sem informação** | 40-49 | 8 | 14 | 15 | 1 | NaN | 1 | 0 | 0 | 0 | **Sem informação** | **Sem informação** | **Sem informação** | **Sem informação** | 3509502 |
| 1 | 9 | 45.0 | 2 | SP | 3509502 | 9 | 2000-01-05 | 15 | 1 | 2000-01-17 | 3 | C539 | C53 | 80703 | IIIB | III | X | X | 0 | X | X | X | 8 | 8 | 8 | 8 | 8 | **Sem informação** | **Sem informação** | **Sem informação** | **Sem informação** | 20/01/2000 | 8 | F | F | J | J | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2002-08-25 | 3 | 12 | 15.0 | 3.0 | 2000 | **Sem informação** | **Sem informação** | 40-49 | 8 | 7 | 15 | 0 | NaN | 1 | 0 | 0 | 0 | **Sem informação** | **Sem informação** | **Sem informação** | **Sem informação** | 3509502 |
| 2 | 2 | 63.0 | 2 | SP | 3509502 | 9 | 2000-01-19 | 15 | 1 | 2000-01-25 | 3 | C539 | C53 | 80703 | IIIB | III | X | X | 0 | X | X | X | 8 | 8 | 8 | 8 | 8 | **Sem informação** | **Sem informação** | **Sem informação** | **Sem informação** | 03/02/2000 | 8 | B | B | J | J | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2001-03-20 | 3 | 6 | 15.0 | 9.0 | 2000 | **Sem informação** | **Sem informação** | 60-69 | 8 | 7 | 15 | 0 | NaN | 1 | 0 | 0 | 0 | **Sem informação** | **Sem informação** | **Sem informação** | **Sem informação** | 3509502 |
| 3 | 9 | 64.0 | 2 | SP | 3545803 | 9 | 2000-01-28 | 15 | 1 | 2000-02-03 | 3 | C539 | C53 | 80703 | IIIB | III | X | X | 0 | X | X | X | 8 | 8 | 8 | 8 | 8 | **Sem informação** | **Sem informação** | **Sem informação** | **Sem informação** | 01/03/2000 | 8 | B | B | J | J | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2002-07-15 | 3 | 6 | 33.0 | 27.0 | 2000 | **Sem informação** | **Sem informação** | 60-69 | 8 | 7 | 15 | 0 | NaN | 1 | 0 | 0 | 0 | **Sem informação** | **Sem informação** | **Sem informação** | **Sem informação** | 3509502 |
| 4 | 1 | 48.0 | 2 | SP | 3530805 | 9 | 2000-01-04 | 15 | 2 | 2000-01-04 | 3 | C539 | C53 | 80703 | IIIB | III | X | X | 0 | X | X | X | 8 | 8 | 8 | 8 | 8 | **Sem informação** | **Sem informação** | **Sem informação** | **Sem informação** | 15/05/2000 | 8 | B | B | J | J | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2016-03-10 | 2 | 0 | 132.0 | 132.0 | 2000 | **Sem informação** | **Sem informação** | 40-49 | 8 | 14 | 15 | 1 | NaN | 1 | 0 | 0 | 0 | **Sem informação** | **Sem informação** | **Sem informação** | **Sem informação** | 3509502 |
[ ]:
# Data - DTCONSULT, DTDIAG, DTTRAT, DTULTINFO, DTRECIDIVA
lista_datas = ['DTCONSULT', 'DTDIAG', 'DTTRAT', 'DTULTINFO', 'DTRECIDIVA']
df[lista_datas].isna().sum()
DTCONSULT 0
DTDIAG 0
DTTRAT 74896
DTULTINFO 45
DTRECIDIVA 848760
dtype: int64
Criação das features¶
Features das datas
Consulta - \(t_1\)
Diagnóstico - \(t_2\)
Tratamento - \(t_3\)
Recidiva - \(t_4\)
Última informação - \(t_5\)
Diferenças, em dias, entre as datas:
Recidiva:
Última informação:
[ ]:
dates = ['DTCONSULT', 'DTDIAG', 'DTTRAT', 'CONSDIAG', 'DIAGTRAT', 'TRATCONS',
'DTULTINFO', 'DTRECIDIVA', 'delta_t1', 'delta_t2', 'delta_t3', 'delta_t4',
'delta_t5', 'delta_t6', 'delta_t7', 'delta_t8', 'delta_t9']
SP
[ ]:
df_SP = df[df.UFRESID == 'SP'].copy()
print(df_SP.shape)
df_SP.head(3)
(872683, 79)
| ESCOLARI | IDADE | SEXO | UFRESID | IBGE | CATEATEND | DTCONSULT | CLINICA | DIAGPREV | DTDIAG | BASEDIAG | TOPO | TOPOGRUP | MORFO | EC | ECGRUP | T | N | M | PT | PN | PM | G | LOCALTNM | IDMITOTIC | PSA | GLEASON | META01 | META02 | META03 | META04 | DTTRAT | NAOTRAT | TRATAMENTO | TRATHOSP | TRATFANTES | TRATFAPOS | NENHUM | CIRURGIA | RADIO | QUIMIO | HORMONIO | TMO | IMUNO | OUTROS | NENHUMANT | CIRURANT | RADIOANT | NENHUMAPOS | CIRURAPOS | RADIOAPOS | QUIMIOAPOS | HORMOAPOS | TMOAPOS | IMUNOAPOS | OUTROAPOS | DTULTINFO | ULTINFO | CONSDIAG | TRATCONS | DIAGTRAT | ANODIAG | CICI | CICIGRUP | FAIXAETAR | LATERALI | DRS | RRAS | PERDASEG | DTRECIDIVA | RECNENHUM | RECLOCAL | RECREGIO | RECDIST | REC01 | REC02 | REC03 | REC04 | IBGEATEN | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 4 | 40.0 | 2 | SP | 3530805 | 9 | 2000-01-03 | 15 | 1 | 2000-01-10 | 3 | C539 | C53 | 81402 | 0 | 0 | X | X | 0 | IS | 0 | 0 | 8 | 8 | 8 | 8 | 8 | **Sem informação** | **Sem informação** | **Sem informação** | **Sem informação** | 07/04/2000 | 8 | A | A | J | J | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2016-09-13 | 2 | 7 | 95.0 | 88.0 | 2000 | **Sem informação** | **Sem informação** | 40-49 | 8 | 14 | 15 | 1 | NaN | 1 | 0 | 0 | 0 | **Sem informação** | **Sem informação** | **Sem informação** | **Sem informação** | 3509502 |
| 1 | 9 | 45.0 | 2 | SP | 3509502 | 9 | 2000-01-05 | 15 | 1 | 2000-01-17 | 3 | C539 | C53 | 80703 | IIIB | III | X | X | 0 | X | X | X | 8 | 8 | 8 | 8 | 8 | **Sem informação** | **Sem informação** | **Sem informação** | **Sem informação** | 20/01/2000 | 8 | F | F | J | J | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2002-08-25 | 3 | 12 | 15.0 | 3.0 | 2000 | **Sem informação** | **Sem informação** | 40-49 | 8 | 7 | 15 | 0 | NaN | 1 | 0 | 0 | 0 | **Sem informação** | **Sem informação** | **Sem informação** | **Sem informação** | 3509502 |
| 2 | 2 | 63.0 | 2 | SP | 3509502 | 9 | 2000-01-19 | 15 | 1 | 2000-01-25 | 3 | C539 | C53 | 80703 | IIIB | III | X | X | 0 | X | X | X | 8 | 8 | 8 | 8 | 8 | **Sem informação** | **Sem informação** | **Sem informação** | **Sem informação** | 03/02/2000 | 8 | B | B | J | J | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2001-03-20 | 3 | 6 | 15.0 | 9.0 | 2000 | **Sem informação** | **Sem informação** | 60-69 | 8 | 7 | 15 | 0 | NaN | 1 | 0 | 0 | 0 | **Sem informação** | **Sem informação** | **Sem informação** | **Sem informação** | 3509502 |
[ ]:
df_SP = get_dates_diff(df_SP)
print(df_SP.shape)
df_SP[dates].head()
(806402, 88)
| DTCONSULT | DTDIAG | DTTRAT | CONSDIAG | DIAGTRAT | TRATCONS | DTULTINFO | DTRECIDIVA | delta_t1 | delta_t2 | delta_t3 | delta_t4 | delta_t5 | delta_t6 | delta_t7 | delta_t8 | delta_t9 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 2000-01-03 | 2000-01-10 | 2000-04-07 | 7 | 88.0 | 95.0 | 2016-09-13 | NaT | 7 | 88 | 95 | NaN | NaN | NaN | 6098 | 6091 | 6003 |
| 1 | 2000-01-05 | 2000-01-17 | 2000-01-20 | 12 | 3.0 | 15.0 | 2002-08-25 | NaT | 12 | 3 | 15 | NaN | NaN | NaN | 963 | 951 | 948 |
| 2 | 2000-01-19 | 2000-01-25 | 2000-02-03 | 6 | 9.0 | 15.0 | 2001-03-20 | NaT | 6 | 9 | 15 | NaN | NaN | NaN | 426 | 420 | 411 |
| 3 | 2000-01-28 | 2000-02-03 | 2000-03-01 | 6 | 27.0 | 33.0 | 2002-07-15 | NaT | 6 | 27 | 33 | NaN | NaN | NaN | 899 | 893 | 866 |
| 4 | 2000-01-04 | 2000-01-04 | 2000-05-15 | 0 | 132.0 | 132.0 | 2016-03-10 | NaT | 0 | 132 | 132 | NaN | NaN | NaN | 5910 | 5910 | 5778 |
Fora de SP
[ ]:
df_fora = df[df.UFRESID != 'SP'].copy()
print(df_fora.shape)
df_fora.head(3)
(70977, 79)
| ESCOLARI | IDADE | SEXO | UFRESID | IBGE | CATEATEND | DTCONSULT | CLINICA | DIAGPREV | DTDIAG | BASEDIAG | TOPO | TOPOGRUP | MORFO | EC | ECGRUP | T | N | M | PT | PN | PM | G | LOCALTNM | IDMITOTIC | PSA | GLEASON | META01 | META02 | META03 | META04 | DTTRAT | NAOTRAT | TRATAMENTO | TRATHOSP | TRATFANTES | TRATFAPOS | NENHUM | CIRURGIA | RADIO | QUIMIO | HORMONIO | TMO | IMUNO | OUTROS | NENHUMANT | CIRURANT | RADIOANT | NENHUMAPOS | CIRURAPOS | RADIOAPOS | QUIMIOAPOS | HORMOAPOS | TMOAPOS | IMUNOAPOS | OUTROAPOS | DTULTINFO | ULTINFO | CONSDIAG | TRATCONS | DIAGTRAT | ANODIAG | CICI | CICIGRUP | FAIXAETAR | LATERALI | DRS | RRAS | PERDASEG | DTRECIDIVA | RECNENHUM | RECLOCAL | RECREGIO | RECDIST | REC01 | REC02 | REC03 | REC04 | IBGEATEN | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 15 | 5 | 56.0 | 2 | MG | 3167400 | 9 | 2000-01-19 | 33 | 1 | 2000-01-26 | 3 | C509 | C50 | 85202 | I | I | 1 | 0 | 0 | 1 | 0 | 0 | 8 | 8 | 8 | 8 | 8 | **Sem informação** | **Sem informação** | **Sem informação** | **Sem informação** | 22/03/2000 | 8 | D | D | J | J | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2018-01-24 | 2 | 7 | 63.0 | 56.0 | 2000 | **Sem informação** | **Sem informação** | 50-59 | 8 | 0 | 99 | 1 | NaN | 1 | 0 | 0 | 0 | **Sem informação** | **Sem informação** | **Sem informação** | **Sem informação** | 3509502 |
| 29 | 2 | 48.0 | 2 | MG | 3159605 | 9 | 2000-02-07 | 33 | 1 | 2000-03-09 | 3 | C509 | C50 | 80102 | 0 | 0 | IS | 0 | 0 | IS | 0 | 0 | 8 | 8 | 8 | 8 | 8 | **Sem informação** | **Sem informação** | **Sem informação** | **Sem informação** | 06/04/2000 | 8 | A | A | J | J | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2016-04-04 | 2 | 31 | 59.0 | 28.0 | 2000 | **Sem informação** | **Sem informação** | 40-49 | 8 | 0 | 99 | 1 | NaN | 1 | 0 | 0 | 0 | **Sem informação** | **Sem informação** | **Sem informação** | **Sem informação** | 3509502 |
| 32 | 2 | 63.0 | 2 | MG | 3143401 | 9 | 2000-01-31 | 33 | 1 | 2000-02-09 | 2 | C509 | C50 | 80102 | 0 | 0 | IS | 0 | 0 | IS | 0 | 0 | 8 | 8 | 8 | 8 | 8 | **Sem informação** | **Sem informação** | **Sem informação** | **Sem informação** | 22/03/2000 | 8 | A | A | J | J | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2016-09-14 | 2 | 9 | 51.0 | 42.0 | 2000 | **Sem informação** | **Sem informação** | 60-69 | 8 | 0 | 99 | 1 | NaN | 1 | 0 | 0 | 0 | **Sem informação** | **Sem informação** | **Sem informação** | **Sem informação** | 3509502 |
[ ]:
df_fora = get_dates_diff(df_fora)
print(df_fora.shape)
df_fora[dates].head(3)
(62317, 88)
| DTCONSULT | DTDIAG | DTTRAT | CONSDIAG | DIAGTRAT | TRATCONS | DTULTINFO | DTRECIDIVA | delta_t1 | delta_t2 | delta_t3 | delta_t4 | delta_t5 | delta_t6 | delta_t7 | delta_t8 | delta_t9 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 15 | 2000-01-19 | 2000-01-26 | 2000-03-22 | 7 | 56.0 | 63.0 | 2018-01-24 | NaT | 7 | 56 | 63 | NaN | NaN | NaN | 6580 | 6573 | 6517 |
| 29 | 2000-02-07 | 2000-03-09 | 2000-04-06 | 31 | 28.0 | 59.0 | 2016-04-04 | NaT | 31 | 28 | 59 | NaN | NaN | NaN | 5901 | 5870 | 5842 |
| 32 | 2000-01-31 | 2000-02-09 | 2000-03-22 | 9 | 42.0 | 51.0 | 2016-09-14 | NaT | 9 | 42 | 51 | NaN | NaN | NaN | 6071 | 6062 | 6020 |
Histogramas¶
SP
[ ]:
fig = px.histogram(df_SP, x="delta_t1", marginal='box',
title='Diferença de dias entre diagnóstico e consulta')
fig.show(config = {'staticPlot': True})
[ ]:
fig = px.histogram(df_SP, x="delta_t2", marginal='box',
title='Diferença de dias entre tratamento e diagnóstico')
fig.show(config = {'staticPlot': True})
[ ]:
fig = px.histogram(df_SP, x="delta_t3", marginal='box',
title='Diferença de dias entre tratamento e consulta')
fig.show(config = {'staticPlot': True})
[ ]:
fig = px.histogram(df_SP, x="delta_t4", marginal='box',
title='Diferença de dias entre recidiva e consulta')
fig.show(config = {'staticPlot': True})
[ ]:
fig = px.histogram(df_SP, x="delta_t5", marginal='box',
title='Diferença de dias entre recidiva e diagnóstico')
fig.show(config = {'staticPlot': True})
[ ]:
fig = px.histogram(df_SP, x="delta_t6", marginal='box',
title='Diferença de dias entre recidiva e tratamento')
fig.show(config = {'staticPlot': True})
[ ]:
fig = px.histogram(df_SP, x="delta_t7", marginal='box',
title='Diferença de dias entre última informação e consulta')
fig.show(config = {'staticPlot': True})
[ ]:
fig = px.histogram(df_SP, x="delta_t8", marginal='box',
title='Diferença de dias entre última informação e diagnóstico')
fig.show(config = {'staticPlot': True})
[ ]:
fig = px.histogram(df_SP, x="delta_t9", marginal='box',
title='Diferença de dias entre última informação e tratamento')
fig.show(config = {'staticPlot': True})
Fora de SP
[ ]:
fig = px.histogram(df_fora, x="delta_t1", marginal='box',
title='Diferença de dias entre diagnóstico e consulta')
fig.show(config = {'staticPlot': True})
[ ]:
fig = px.histogram(df_fora, x="delta_t2", marginal='box',
title='Diferença de dias entre tratamento e diagnóstico')
fig.show(config = {'staticPlot': True})
[ ]:
fig = px.histogram(df_fora, x="delta_t3", marginal='box',
title='Diferença de dias entre tratamento e consulta')
fig.show(config = {'staticPlot': True})
[ ]:
fig = px.histogram(df_fora, x="delta_t4", marginal='box',
title='Diferença de dias entre recidiva e consulta')
fig.show(config = {'staticPlot': True})
[ ]:
fig = px.histogram(df_fora, x="delta_t5", marginal='box',
title='Diferença de dias entre recidiva e diagnóstico')
fig.show(config = {'staticPlot': True})
[ ]:
fig = px.histogram(df_fora, x="delta_t6", marginal='box',
title='Diferença de dias entre recidiva e tratamento')
fig.show(config = {'staticPlot': True})
[ ]:
fig = px.histogram(df_fora, x="delta_t7", marginal='box',
title='Diferença de dias entre última informação e consulta')
fig.show(config = {'staticPlot': True})
[ ]:
fig = px.histogram(df_fora, x="delta_t8", marginal='box',
title='Diferença de dias entre última informação e diagnóstico')
fig.show(config = {'staticPlot': True})
[ ]:
fig = px.histogram(df_fora, x="delta_t9", marginal='box',
title='Diferença de dias entre última informação e tratamento')
fig.show(config = {'staticPlot': True})
Criação dos labels de óbito¶
Labels óbito * Óbito em qualquer momento - ob
Ano do óbito em relação a data do diagnóstico - ano_ob
0 - Paciente está vivo;
1 - Óbito no primeiro ano;
2 - Óbito no segundo ano;
3 - Óbito no terceiro ano;
4 - Óbito no quarto ano;
5 - Óbito no quinto ano;
6 - Óbito com mais de 5 ano;
Última informação
1 - VIVO, COM CÂNCER
2 – VIVO, SOE
3 – OBITO POR CANCER
4 – OBITO POR OUTRAS CAUSAS, SOE
SP
[ ]:
df_SP.head(2)
| ESCOLARI | IDADE | SEXO | UFRESID | IBGE | CATEATEND | DTCONSULT | CLINICA | DIAGPREV | DTDIAG | BASEDIAG | TOPO | TOPOGRUP | MORFO | EC | ECGRUP | T | N | M | PT | PN | PM | G | LOCALTNM | IDMITOTIC | PSA | GLEASON | META01 | META02 | META03 | META04 | DTTRAT | NAOTRAT | TRATAMENTO | TRATHOSP | TRATFANTES | TRATFAPOS | NENHUM | CIRURGIA | RADIO | ... | NENHUMAPOS | CIRURAPOS | RADIOAPOS | QUIMIOAPOS | HORMOAPOS | TMOAPOS | IMUNOAPOS | OUTROAPOS | DTULTINFO | ULTINFO | CONSDIAG | TRATCONS | DIAGTRAT | ANODIAG | CICI | CICIGRUP | FAIXAETAR | LATERALI | DRS | RRAS | PERDASEG | DTRECIDIVA | RECNENHUM | RECLOCAL | RECREGIO | RECDIST | REC01 | REC02 | REC03 | REC04 | IBGEATEN | delta_t1 | delta_t2 | delta_t3 | delta_t4 | delta_t5 | delta_t6 | delta_t7 | delta_t8 | delta_t9 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 4 | 40.0 | 2 | SP | 3530805 | 9 | 2000-01-03 | 15 | 1 | 2000-01-10 | 3 | C539 | C53 | 81402 | 0 | 0 | X | X | 0 | IS | 0 | 0 | 8 | 8 | 8 | 8 | 8 | **Sem informação** | **Sem informação** | **Sem informação** | **Sem informação** | 2000-04-07 | 8 | A | A | J | J | 0 | 1 | 0 | ... | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2016-09-13 | 2 | 7 | 95.0 | 88.0 | 2000 | **Sem informação** | **Sem informação** | 40-49 | 8 | 14 | 15 | 1 | NaT | 1 | 0 | 0 | 0 | **Sem informação** | **Sem informação** | **Sem informação** | **Sem informação** | 3509502 | 7 | 88 | 95 | NaN | NaN | NaN | 6098 | 6091 | 6003 |
| 1 | 9 | 45.0 | 2 | SP | 3509502 | 9 | 2000-01-05 | 15 | 1 | 2000-01-17 | 3 | C539 | C53 | 80703 | IIIB | III | X | X | 0 | X | X | X | 8 | 8 | 8 | 8 | 8 | **Sem informação** | **Sem informação** | **Sem informação** | **Sem informação** | 2000-01-20 | 8 | F | F | J | J | 0 | 0 | 1 | ... | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2002-08-25 | 3 | 12 | 15.0 | 3.0 | 2000 | **Sem informação** | **Sem informação** | 40-49 | 8 | 7 | 15 | 0 | NaT | 1 | 0 | 0 | 0 | **Sem informação** | **Sem informação** | **Sem informação** | **Sem informação** | 3509502 | 12 | 3 | 15 | NaN | NaN | NaN | 963 | 951 | 948 |
2 rows × 88 columns
[ ]:
df_SP.ULTINFO.value_counts()
2 384562
3 216244
4 109434
1 96162
Name: ULTINFO, dtype: int64
[ ]:
df_SP = get_labels(df_SP)
[ ]:
df_SP[df_SP.ob == 1].head(10)
| ESCOLARI | IDADE | SEXO | UFRESID | IBGE | CATEATEND | DTCONSULT | CLINICA | DIAGPREV | DTDIAG | BASEDIAG | TOPO | TOPOGRUP | MORFO | EC | ECGRUP | T | N | M | PT | PN | PM | G | LOCALTNM | IDMITOTIC | PSA | GLEASON | META01 | META02 | META03 | META04 | DTTRAT | NAOTRAT | TRATAMENTO | TRATHOSP | TRATFANTES | TRATFAPOS | NENHUM | CIRURGIA | RADIO | ... | RADIOAPOS | QUIMIOAPOS | HORMOAPOS | TMOAPOS | IMUNOAPOS | OUTROAPOS | DTULTINFO | ULTINFO | CONSDIAG | TRATCONS | DIAGTRAT | ANODIAG | CICI | CICIGRUP | FAIXAETAR | LATERALI | DRS | RRAS | PERDASEG | DTRECIDIVA | RECNENHUM | RECLOCAL | RECREGIO | RECDIST | REC01 | REC02 | REC03 | REC04 | IBGEATEN | delta_t1 | delta_t2 | delta_t3 | delta_t4 | delta_t5 | delta_t6 | delta_t7 | delta_t8 | delta_t9 | ob | ano_ob | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 9 | 45.0 | 2 | SP | 3509502 | 9 | 2000-01-05 | 15 | 1 | 2000-01-17 | 3 | C539 | C53 | 80703 | IIIB | III | X | X | 0 | X | X | X | 8 | 8 | 8 | 8 | 8 | **Sem informação** | **Sem informação** | **Sem informação** | **Sem informação** | 2000-01-20 | 8 | F | F | J | J | 0 | 0 | 1 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 2002-08-25 | 3 | 12 | 15.0 | 3.0 | 2000 | **Sem informação** | **Sem informação** | 40-49 | 8 | 7 | 15 | 0 | NaT | 1 | 0 | 0 | 0 | **Sem informação** | **Sem informação** | **Sem informação** | **Sem informação** | 3509502 | 12 | 3 | 15 | NaN | NaN | NaN | 963 | 951 | 948 | 1 | 3 |
| 2 | 2 | 63.0 | 2 | SP | 3509502 | 9 | 2000-01-19 | 15 | 1 | 2000-01-25 | 3 | C539 | C53 | 80703 | IIIB | III | X | X | 0 | X | X | X | 8 | 8 | 8 | 8 | 8 | **Sem informação** | **Sem informação** | **Sem informação** | **Sem informação** | 2000-02-03 | 8 | B | B | J | J | 0 | 0 | 1 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 2001-03-20 | 3 | 6 | 15.0 | 9.0 | 2000 | **Sem informação** | **Sem informação** | 60-69 | 8 | 7 | 15 | 0 | NaT | 1 | 0 | 0 | 0 | **Sem informação** | **Sem informação** | **Sem informação** | **Sem informação** | 3509502 | 6 | 9 | 15 | NaN | NaN | NaN | 426 | 420 | 411 | 1 | 2 |
| 3 | 9 | 64.0 | 2 | SP | 3545803 | 9 | 2000-01-28 | 15 | 1 | 2000-02-03 | 3 | C539 | C53 | 80703 | IIIB | III | X | X | 0 | X | X | X | 8 | 8 | 8 | 8 | 8 | **Sem informação** | **Sem informação** | **Sem informação** | **Sem informação** | 2000-03-01 | 8 | B | B | J | J | 0 | 0 | 1 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 2002-07-15 | 3 | 6 | 33.0 | 27.0 | 2000 | **Sem informação** | **Sem informação** | 60-69 | 8 | 7 | 15 | 0 | NaT | 1 | 0 | 0 | 0 | **Sem informação** | **Sem informação** | **Sem informação** | **Sem informação** | 3509502 | 6 | 27 | 33 | NaN | NaN | NaN | 899 | 893 | 866 | 1 | 3 |
| 5 | 2 | 31.0 | 2 | SP | 3509502 | 9 | 2000-01-10 | 15 | 1 | 2000-01-17 | 3 | C539 | C53 | 81403 | IIIB | III | X | X | 0 | X | X | X | 8 | 8 | 8 | 8 | 8 | **Sem informação** | **Sem informação** | **Sem informação** | **Sem informação** | 2000-01-31 | 8 | B | B | J | J | 0 | 0 | 1 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 2001-05-12 | 3 | 7 | 21.0 | 14.0 | 2000 | **Sem informação** | **Sem informação** | 30-39 | 8 | 7 | 15 | 0 | 2000-12-22 | 0 | 0 | 1 | 0 | C77 | **Sem informação** | **Sem informação** | **Sem informação** | 3509502 | 7 | 14 | 21 | 347.0 | 340.0 | 326.0 | 488 | 481 | 467 | 1 | 2 |
| 11 | 2 | 68.0 | 2 | SP | 3522604 | 2 | 2000-01-14 | 33 | 1 | 2000-01-21 | 3 | C509 | C50 | 85003 | IV | IV | 4B | 2 | 1 | **Sem informação** | **Sem informação** | **Sem informação** | 8 | 8 | 8 | 8 | 8 | C22 | C44 | **Sem informação** | **Sem informação** | 2000-01-26 | 8 | I | I | J | J | 0 | 1 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 2008-01-31 | 3 | 7 | 12.0 | 5.0 | 2000 | **Sem informação** | **Sem informação** | 60-69 | 8 | 14 | 15 | 0 | 2004-02-20 | 0 | 0 | 1 | 0 | C71 | C22 | **Sem informação** | **Sem informação** | 3509502 | 7 | 5 | 12 | 1498.0 | 1491.0 | 1486.0 | 2939 | 2932 | 2927 | 1 | 6 |
| 13 | 3 | 77.0 | 2 | SP | 3509502 | 9 | 2000-01-05 | 33 | 2 | 2000-01-05 | 2 | C509 | C50 | 85003 | I | I | 1 | 0 | 0 | 2 | 1 | 0 | 8 | 8 | 8 | 8 | 8 | **Sem informação** | **Sem informação** | **Sem informação** | **Sem informação** | 2000-02-02 | 8 | I | I | J | J | 0 | 1 | 1 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 2011-12-30 | 4 | 0 | 28.0 | 28.0 | 2000 | **Sem informação** | **Sem informação** | 70+ | 8 | 7 | 15 | 0 | NaT | 1 | 0 | 0 | 0 | **Sem informação** | **Sem informação** | **Sem informação** | **Sem informação** | 3509502 | 0 | 28 | 28 | NaN | NaN | NaN | 4377 | 4377 | 4349 | 1 | 6 |
| 14 | 2 | 50.0 | 2 | SP | 3553302 | 9 | 2000-01-28 | 33 | 1 | 2000-01-31 | 3 | C509 | C50 | 85303 | IIIB | III | 4D | 1 | 0 | 4D | 2 | 0 | 8 | 8 | 8 | 8 | 8 | **Sem informação** | **Sem informação** | **Sem informação** | **Sem informação** | 2000-04-10 | 8 | G | G | J | J | 0 | 1 | 1 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 2002-12-24 | 3 | 3 | 73.0 | 70.0 | 2000 | **Sem informação** | **Sem informação** | 50-59 | 8 | 14 | 15 | 0 | 2001-10-08 | 0 | 1 | 0 | 0 | C50 | **Sem informação** | **Sem informação** | **Sem informação** | 3509502 | 3 | 70 | 73 | 619.0 | 616.0 | 546.0 | 1061 | 1058 | 988 | 1 | 3 |
| 16 | 2 | 77.0 | 2 | SP | 3509502 | 9 | 2000-02-07 | 15 | 2 | 2000-02-07 | 3 | C541 | C54 | 89303 | Y | Y | Y | Y | Y | Y | Y | Y | 8 | 8 | 8 | 8 | 8 | C22 | C34 | **Sem informação** | **Sem informação** | 2000-04-03 | 8 | A | A | J | J | 0 | 1 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 2002-07-24 | 3 | 0 | 56.0 | 56.0 | 2000 | **Sem informação** | **Sem informação** | 70+ | 8 | 7 | 15 | 0 | 2001-08-16 | 1 | 0 | 0 | 0 | C41 | **Sem informação** | **Sem informação** | **Sem informação** | 3509502 | 0 | 56 | 56 | 556.0 | 556.0 | 500.0 | 898 | 898 | 842 | 1 | 3 |
| 17 | 9 | 58.0 | 2 | SP | 3556701 | 9 | 2000-01-14 | 15 | 2 | 2000-01-14 | 3 | C539 | C53 | 80703 | IIIB | III | X | X | 0 | X | X | X | 8 | 8 | 8 | 8 | 8 | **Sem informação** | **Sem informação** | **Sem informação** | **Sem informação** | 2000-02-17 | 8 | B | B | J | J | 0 | 0 | 1 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 2005-06-21 | 3 | 0 | 34.0 | 34.0 | 2000 | **Sem informação** | **Sem informação** | 50-59 | 8 | 7 | 15 | 0 | 2005-03-01 | 0 | 0 | 1 | 0 | C77 | C40 | **Sem informação** | **Sem informação** | 3509502 | 0 | 34 | 34 | 1873.0 | 1873.0 | 1839.0 | 1985 | 1985 | 1951 | 1 | 6 |
| 18 | 9 | 70.0 | 2 | SP | 3532009 | 9 | 2000-02-29 | 15 | 1 | 2000-03-27 | 3 | C539 | C53 | 80703 | IIB | II | X | X | 0 | X | X | X | 8 | 8 | 8 | 8 | 8 | **Sem informação** | **Sem informação** | **Sem informação** | **Sem informação** | 2000-04-17 | 8 | B | B | J | J | 0 | 0 | 1 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 2002-06-15 | 3 | 27 | 48.0 | 21.0 | 2000 | **Sem informação** | **Sem informação** | 70+ | 8 | 7 | 15 | 0 | NaT | 1 | 0 | 0 | 0 | **Sem informação** | **Sem informação** | **Sem informação** | **Sem informação** | 3509502 | 27 | 21 | 48 | NaN | NaN | NaN | 837 | 810 | 789 | 1 | 3 |
10 rows × 90 columns
[ ]:
save_csv(df_SP, '/content/drive/MyDrive/Trabalho/Cancer/Datasets/cancer_SP_labels.csv'
Fora de SP
[ ]:
df_fora.ULTINFO.value_counts()
2 37045
3 12820
1 7546
4 4906
Name: ULTINFO, dtype: int64
[ ]:
df_fora = get_labels(df_fora)
[ ]:
df_fora.head(2)
| ESCOLARI | IDADE | SEXO | UFRESID | IBGE | CATEATEND | DTCONSULT | CLINICA | DIAGPREV | DTDIAG | BASEDIAG | TOPO | TOPOGRUP | MORFO | EC | ECGRUP | T | N | M | PT | PN | PM | G | LOCALTNM | IDMITOTIC | PSA | GLEASON | META01 | META02 | META03 | META04 | DTTRAT | NAOTRAT | TRATAMENTO | TRATHOSP | TRATFANTES | TRATFAPOS | NENHUM | CIRURGIA | RADIO | ... | RADIOAPOS | QUIMIOAPOS | HORMOAPOS | TMOAPOS | IMUNOAPOS | OUTROAPOS | DTULTINFO | ULTINFO | CONSDIAG | TRATCONS | DIAGTRAT | ANODIAG | CICI | CICIGRUP | FAIXAETAR | LATERALI | DRS | RRAS | PERDASEG | DTRECIDIVA | RECNENHUM | RECLOCAL | RECREGIO | RECDIST | REC01 | REC02 | REC03 | REC04 | IBGEATEN | delta_t1 | delta_t2 | delta_t3 | delta_t4 | delta_t5 | delta_t6 | delta_t7 | delta_t8 | delta_t9 | ob | ano_ob | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 15 | 5 | 56.0 | 2 | MG | 3167400 | 9 | 2000-01-19 | 33 | 1 | 2000-01-26 | 3 | C509 | C50 | 85202 | I | I | 1 | 0 | 0 | 1 | 0 | 0 | 8 | 8 | 8 | 8 | 8 | Sem informação | Sem informação | Sem informação | Sem informação | 2000-03-22 | 8 | D | D | J | J | 0 | 1 | 1 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 2018-01-24 | 2 | 7 | 63.0 | 56.0 | 2000 | Sem informação | Sem informação | 50-59 | 8 | 0 | 99 | 1 | NaT | 1 | 0 | 0 | 0 | Sem informação | Sem informação | Sem informação | Sem informação | 3509502 | 7 | 56 | 63 | NaN | NaN | NaN | 6580 | 6573 | 6517 | 0 | 0 |
| 29 | 2 | 48.0 | 2 | MG | 3159605 | 9 | 2000-02-07 | 33 | 1 | 2000-03-09 | 3 | C509 | C50 | 80102 | 0 | 0 | IS | 0 | 0 | IS | 0 | 0 | 8 | 8 | 8 | 8 | 8 | Sem informação | Sem informação | Sem informação | Sem informação | 2000-04-06 | 8 | A | A | J | J | 0 | 1 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 2016-04-04 | 2 | 31 | 59.0 | 28.0 | 2000 | Sem informação | Sem informação | 40-49 | 8 | 0 | 99 | 1 | NaT | 1 | 0 | 0 | 0 | Sem informação | Sem informação | Sem informação | Sem informação | 3509502 | 31 | 28 | 59 | NaN | NaN | NaN | 5901 | 5870 | 5842 | 0 | 0 |
2 rows × 90 columns
[ ]:
df_fora[df_fora.ob == 1].head(10)
| ESCOLARI | IDADE | SEXO | UFRESID | IBGE | CATEATEND | DTCONSULT | CLINICA | DIAGPREV | DTDIAG | BASEDIAG | TOPO | TOPOGRUP | MORFO | EC | ECGRUP | T | N | M | PT | PN | PM | G | LOCALTNM | IDMITOTIC | PSA | GLEASON | META01 | META02 | META03 | META04 | DTTRAT | NAOTRAT | TRATAMENTO | TRATHOSP | TRATFANTES | TRATFAPOS | NENHUM | CIRURGIA | RADIO | ... | RADIOAPOS | QUIMIOAPOS | HORMOAPOS | TMOAPOS | IMUNOAPOS | OUTROAPOS | DTULTINFO | ULTINFO | CONSDIAG | TRATCONS | DIAGTRAT | ANODIAG | CICI | CICIGRUP | FAIXAETAR | LATERALI | DRS | RRAS | PERDASEG | DTRECIDIVA | RECNENHUM | RECLOCAL | RECREGIO | RECDIST | REC01 | REC02 | REC03 | REC04 | IBGEATEN | delta_t1 | delta_t2 | delta_t3 | delta_t4 | delta_t5 | delta_t6 | delta_t7 | delta_t8 | delta_t9 | ob | ano_ob | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 41 | 2 | 52.0 | 2 | MG | 3108305 | 9 | 2000-01-19 | 33 | 1 | 2000-02-01 | 3 | C509 | C50 | 85003 | IIA | II | 2 | 0 | 0 | 1 | 0 | 0 | 8 | 8 | 8 | 8 | 8 | Sem informação | Sem informação | Sem informação | Sem informação | 2000-03-22 | 8 | G | G | J | J | 0 | 1 | 1 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 2007-02-04 | 4 | 13 | 63.0 | 50.0 | 2000 | Sem informação | Sem informação | 50-59 | 8 | 0 | 99 | 0 | 2005-09-26 | 0 | 0 | 1 | 0 | C71 | C22 | Sem informação | Sem informação | 3509502 | 13 | 50 | 63 | 2077.0 | 2064.0 | 2014.0 | 2573 | 2560 | 2510 | 1 | 6 |
| 53 | 9 | 52.0 | 2 | MG | 3113602 | 2 | 2000-03-28 | 33 | 1 | 2000-04-26 | 3 | C509 | C50 | 85003 | IIA | II | 2 | 0 | 0 | X | X | X | 8 | 8 | 8 | 8 | 8 | Sem informação | Sem informação | Sem informação | Sem informação | 2000-04-26 | 8 | F | F | J | J | 0 | 0 | 1 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 2012-12-31 | 4 | 29 | 29.0 | 0.0 | 2000 | Sem informação | Sem informação | 50-59 | 8 | 0 | 99 | 0 | NaT | 1 | 0 | 0 | 0 | Sem informação | Sem informação | Sem informação | Sem informação | 3509502 | 29 | 0 | 29 | NaN | NaN | NaN | 4661 | 4632 | 4632 | 1 | 6 |
| 68 | 2 | 65.0 | 2 | MG | 3108305 | 2 | 2000-02-11 | 15 | 2 | 2000-02-11 | 3 | C539 | C53 | 80703 | IIB | II | X | X | 0 | Sem informação | Sem informação | Sem informação | 8 | 8 | 8 | 8 | 8 | Sem informação | Sem informação | Sem informação | Sem informação | 2000-04-14 | 8 | B | B | J | J | 0 | 0 | 1 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 2003-01-14 | 4 | 0 | 63.0 | 63.0 | 2000 | Sem informação | Sem informação | 60-69 | 8 | 0 | 99 | 0 | NaT | 1 | 0 | 0 | 0 | Sem informação | Sem informação | Sem informação | Sem informação | 3509502 | 0 | 63 | 63 | NaN | NaN | NaN | 1068 | 1068 | 1005 | 1 | 3 |
| 79 | 2 | 63.0 | 2 | MG | 3151800 | 9 | 2000-03-16 | 15 | 2 | 2000-03-16 | 3 | C519 | C51 | 80703 | III | III | X | X | 0 | 2 | 1 | 0 | 8 | 8 | 8 | 8 | 8 | Sem informação | Sem informação | Sem informação | Sem informação | 2000-05-19 | 8 | A | A | J | J | 0 | 1 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 2001-12-15 | 4 | 0 | 64.0 | 64.0 | 2000 | Sem informação | Sem informação | 60-69 | 8 | 0 | 99 | 0 | NaT | 1 | 0 | 0 | 0 | Sem informação | Sem informação | Sem informação | Sem informação | 3509502 | 0 | 64 | 64 | NaN | NaN | NaN | 639 | 639 | 575 | 1 | 2 |
| 83 | 9 | 67.0 | 2 | TO | 1702109 | 9 | 2000-05-05 | 15 | 1 | 2000-05-12 | 3 | C539 | C53 | 80703 | IIIB | III | X | X | 0 | X | X | X | 8 | 8 | 8 | 8 | 8 | Sem informação | Sem informação | Sem informação | Sem informação | 2000-06-07 | 8 | B | B | J | J | 0 | 0 | 1 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 2002-12-30 | 4 | 7 | 33.0 | 26.0 | 2000 | Sem informação | Sem informação | 60-69 | 8 | 0 | 99 | 0 | NaT | 1 | 0 | 0 | 0 | Sem informação | Sem informação | Sem informação | Sem informação | 3509502 | 7 | 26 | 33 | NaN | NaN | NaN | 969 | 962 | 936 | 1 | 3 |
| 87 | 1 | 77.0 | 2 | MG | 3102605 | 9 | 2000-04-03 | 33 | 2 | 2000-04-03 | 3 | C509 | C50 | 85003 | IIIB | III | 4B | 2 | 0 | X | X | X | 8 | 8 | 8 | 8 | 8 | Sem informação | Sem informação | Sem informação | Sem informação | 2000-07-14 | 8 | I | I | J | J | 0 | 0 | 1 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 2000-10-17 | 3 | 0 | 102.0 | 102.0 | 2000 | Sem informação | Sem informação | 70+ | 8 | 0 | 99 | 0 | NaT | 1 | 0 | 0 | 0 | Sem informação | Sem informação | Sem informação | Sem informação | 3509502 | 0 | 102 | 102 | NaN | NaN | NaN | 197 | 197 | 95 | 1 | 1 |
| 97 | 2 | 83.0 | 2 | MG | 3102605 | 9 | 2000-03-30 | 33 | 2 | 2000-03-30 | 3 | C509 | C50 | 85003 | IIIB | III | 4B | 1 | 0 | 4B | 1 | 0 | 8 | 8 | 8 | 8 | 8 | Sem informação | Sem informação | Sem informação | Sem informação | 2000-05-03 | 8 | D | D | J | J | 0 | 1 | 1 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 2010-06-11 | 4 | 0 | 34.0 | 34.0 | 2000 | Sem informação | Sem informação | 70+ | 8 | 0 | 99 | 0 | NaT | 1 | 0 | 0 | 0 | Sem informação | Sem informação | Sem informação | Sem informação | 3509502 | 0 | 34 | 34 | NaN | NaN | NaN | 3725 | 3725 | 3691 | 1 | 6 |
| 104 | 9 | 54.0 | 2 | MG | 3143401 | 9 | 2000-02-14 | 33 | 1 | 2000-04-05 | 3 | C509 | C50 | 89803 | Y | Y | Y | Y | Y | Y | Y | Y | 8 | 8 | 8 | 8 | 8 | C34 | Sem informação | Sem informação | Sem informação | 2000-04-05 | 8 | I | I | J | J | 0 | 1 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 2003-07-20 | 4 | 51 | 51.0 | 0.0 | 2000 | Sem informação | Sem informação | 50-59 | 8 | 0 | 99 | 0 | 2000-04-27 | 1 | 0 | 0 | 0 | C34 | Sem informação | Sem informação | Sem informação | 3509502 | 51 | 0 | 51 | 73.0 | 22.0 | 22.0 | 1252 | 1201 | 1201 | 1 | 4 |
| 116 | 2 | 55.0 | 2 | MG | 3143807 | 9 | 2000-01-17 | 33 | 1 | 2000-04-05 | 3 | C509 | C50 | 85003 | IIA | II | 2 | 0 | 0 | 2 | 0 | 0 | 8 | 8 | 8 | 8 | 8 | Sem informação | Sem informação | Sem informação | Sem informação | 2000-04-05 | 8 | E | E | J | J | 0 | 1 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 2001-06-18 | 4 | 79 | 79.0 | 0.0 | 2000 | Sem informação | Sem informação | 50-59 | 8 | 0 | 99 | 0 | NaT | 1 | 0 | 0 | 0 | Sem informação | Sem informação | Sem informação | Sem informação | 3509502 | 79 | 0 | 79 | NaN | NaN | NaN | 518 | 439 | 439 | 1 | 2 |
| 127 | 9 | 72.0 | 2 | MG | 3159605 | 9 | 2000-03-30 | 15 | 2 | 2000-03-30 | 3 | C539 | C53 | 80723 | IIIB | III | X | X | 0 | X | X | X | 8 | 8 | 8 | 8 | 8 | Sem informação | Sem informação | Sem informação | Sem informação | 2000-08-02 | 8 | B | B | J | J | 0 | 0 | 1 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 2012-12-30 | 4 | 0 | 125.0 | 125.0 | 2000 | Sem informação | Sem informação | 70+ | 8 | 0 | 99 | 0 | NaT | 1 | 0 | 0 | 0 | Sem informação | Sem informação | Sem informação | Sem informação | 3509502 | 0 | 125 | 125 | NaN | NaN | NaN | 4658 | 4658 | 4533 | 1 | 6 |
10 rows × 90 columns
[ ]:
save_csv(df_fora, '/content/drive/MyDrive/Trabalho/Cancer/Datasets/cancer_foraSP_labels.csv')
Criação dos labels de recidiva¶
Labels recidiva * Óbito sem recidiva - ob_sem_rec
Óbito com recidiva - ob_com_rec
Vivos sem recidiva - vivo_sem_rec
Vivos com recidiva - vivo_com_rec
Última informação
1 - VIVO, COM CÂNCER
2 - VIVO, SOE
3 - OBITO POR CANCER
4 - OBITO POR OUTRAS CAUSAS, SOE
[ ]:
df_SP = read_csv('/content/drive/MyDrive/Trabalho/Cancer/Datasets/cancer_SP_labels.csv')
df_fora = read_csv('/content/drive/MyDrive/Trabalho/Cancer/Datasets/cancer_foraSP_labels.csv')
SP
[ ]:
df_SP.head(2)
| ESCOLARI | IDADE | SEXO | UFRESID | IBGE | CATEATEND | DTCONSULT | CLINICA | DIAGPREV | DTDIAG | BASEDIAG | TOPO | TOPOGRUP | MORFO | EC | ECGRUP | T | N | M | PT | PN | PM | G | LOCALTNM | IDMITOTIC | PSA | GLEASON | META01 | META02 | META03 | META04 | DTTRAT | NAOTRAT | TRATAMENTO | TRATHOSP | TRATFANTES | TRATFAPOS | NENHUM | CIRURGIA | RADIO | ... | RADIOAPOS | QUIMIOAPOS | HORMOAPOS | TMOAPOS | IMUNOAPOS | OUTROAPOS | DTULTINFO | ULTINFO | CONSDIAG | TRATCONS | DIAGTRAT | ANODIAG | CICI | CICIGRUP | FAIXAETAR | LATERALI | DRS | RRAS | PERDASEG | DTRECIDIVA | RECNENHUM | RECLOCAL | RECREGIO | RECDIST | REC01 | REC02 | REC03 | REC04 | IBGEATEN | delta_t1 | delta_t2 | delta_t3 | delta_t4 | delta_t5 | delta_t6 | delta_t7 | delta_t8 | delta_t9 | ob | ano_ob | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 4 | 40.0 | 2 | SP | 3530805 | 9 | 2000-01-03 | 15 | 1 | 2000-01-10 | 3 | C539 | C53 | 81402 | 0 | 0 | X | X | 0 | IS | 0 | 0 | 8 | 8 | 8 | 8 | 8 | Sem informação | Sem informação | Sem informação | Sem informação | 2000-04-07 | 8 | A | A | J | J | 0 | 1 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 2016-09-13 | 2 | 7 | 95.0 | 88.0 | 2000 | Sem informação | Sem informação | 40-49 | 8 | 14 | 15 | 1 | NaN | 1 | 0 | 0 | 0 | Sem informação | Sem informação | Sem informação | Sem informação | 3509502 | 7 | 88 | 95 | NaN | NaN | NaN | 6098 | 6091 | 6003 | 0 | 0 |
| 1 | 9 | 45.0 | 2 | SP | 3509502 | 9 | 2000-01-05 | 15 | 1 | 2000-01-17 | 3 | C539 | C53 | 80703 | IIIB | III | X | X | 0 | X | X | X | 8 | 8 | 8 | 8 | 8 | Sem informação | Sem informação | Sem informação | Sem informação | 2000-01-20 | 8 | F | F | J | J | 0 | 0 | 1 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 2002-08-25 | 3 | 12 | 15.0 | 3.0 | 2000 | Sem informação | Sem informação | 40-49 | 8 | 7 | 15 | 0 | NaN | 1 | 0 | 0 | 0 | Sem informação | Sem informação | Sem informação | Sem informação | 3509502 | 12 | 3 | 15 | NaN | NaN | NaN | 963 | 951 | 948 | 1 | 3 |
2 rows × 90 columns
[ ]:
df_SP = get_label_rec(df_SP)
[ ]:
df_SP.head()
| ESCOLARI | IDADE | SEXO | UFRESID | IBGE | CATEATEND | DTCONSULT | CLINICA | DIAGPREV | DTDIAG | BASEDIAG | TOPO | TOPOGRUP | MORFO | EC | ECGRUP | T | N | M | PT | PN | PM | G | LOCALTNM | IDMITOTIC | PSA | GLEASON | META01 | META02 | META03 | META04 | DTTRAT | NAOTRAT | TRATAMENTO | TRATHOSP | TRATFANTES | TRATFAPOS | NENHUM | CIRURGIA | RADIO | ... | IMUNOAPOS | OUTROAPOS | DTULTINFO | ULTINFO | CONSDIAG | TRATCONS | DIAGTRAT | ANODIAG | CICI | CICIGRUP | FAIXAETAR | LATERALI | DRS | RRAS | PERDASEG | DTRECIDIVA | RECNENHUM | RECLOCAL | RECREGIO | RECDIST | REC01 | REC02 | REC03 | REC04 | IBGEATEN | delta_t1 | delta_t2 | delta_t3 | delta_t4 | delta_t5 | delta_t6 | delta_t7 | delta_t8 | delta_t9 | ob | ano_ob | ob_com_rec | ob_sem_rec | vivo_com_rec | vivo_sem_rec | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 4 | 40.0 | 2 | SP | 3530805 | 9 | 2000-01-03 | 15 | 1 | 2000-01-10 | 3 | C539 | C53 | 81402 | 0 | 0 | X | X | 0 | IS | 0 | 0 | 8 | 8 | 8 | 8 | 8 | Sem informação | Sem informação | Sem informação | Sem informação | 2000-04-07 | 8 | A | A | J | J | 0 | 1 | 0 | ... | 0 | 0 | 2016-09-13 | 2 | 7 | 95.0 | 88.0 | 2000 | Sem informação | Sem informação | 40-49 | 8 | 14 | 15 | 1 | NaN | 1 | 0 | 0 | 0 | Sem informação | Sem informação | Sem informação | Sem informação | 3509502 | 7 | 88 | 95 | NaN | NaN | NaN | 6098 | 6091 | 6003 | 0 | 0 | 0 | 0 | 0 | 1 |
| 1 | 9 | 45.0 | 2 | SP | 3509502 | 9 | 2000-01-05 | 15 | 1 | 2000-01-17 | 3 | C539 | C53 | 80703 | IIIB | III | X | X | 0 | X | X | X | 8 | 8 | 8 | 8 | 8 | Sem informação | Sem informação | Sem informação | Sem informação | 2000-01-20 | 8 | F | F | J | J | 0 | 0 | 1 | ... | 0 | 0 | 2002-08-25 | 3 | 12 | 15.0 | 3.0 | 2000 | Sem informação | Sem informação | 40-49 | 8 | 7 | 15 | 0 | NaN | 1 | 0 | 0 | 0 | Sem informação | Sem informação | Sem informação | Sem informação | 3509502 | 12 | 3 | 15 | NaN | NaN | NaN | 963 | 951 | 948 | 1 | 3 | 0 | 1 | 0 | 0 |
| 2 | 2 | 63.0 | 2 | SP | 3509502 | 9 | 2000-01-19 | 15 | 1 | 2000-01-25 | 3 | C539 | C53 | 80703 | IIIB | III | X | X | 0 | X | X | X | 8 | 8 | 8 | 8 | 8 | Sem informação | Sem informação | Sem informação | Sem informação | 2000-02-03 | 8 | B | B | J | J | 0 | 0 | 1 | ... | 0 | 0 | 2001-03-20 | 3 | 6 | 15.0 | 9.0 | 2000 | Sem informação | Sem informação | 60-69 | 8 | 7 | 15 | 0 | NaN | 1 | 0 | 0 | 0 | Sem informação | Sem informação | Sem informação | Sem informação | 3509502 | 6 | 9 | 15 | NaN | NaN | NaN | 426 | 420 | 411 | 1 | 2 | 0 | 1 | 0 | 0 |
| 3 | 9 | 64.0 | 2 | SP | 3545803 | 9 | 2000-01-28 | 15 | 1 | 2000-02-03 | 3 | C539 | C53 | 80703 | IIIB | III | X | X | 0 | X | X | X | 8 | 8 | 8 | 8 | 8 | Sem informação | Sem informação | Sem informação | Sem informação | 2000-03-01 | 8 | B | B | J | J | 0 | 0 | 1 | ... | 0 | 0 | 2002-07-15 | 3 | 6 | 33.0 | 27.0 | 2000 | Sem informação | Sem informação | 60-69 | 8 | 7 | 15 | 0 | NaN | 1 | 0 | 0 | 0 | Sem informação | Sem informação | Sem informação | Sem informação | 3509502 | 6 | 27 | 33 | NaN | NaN | NaN | 899 | 893 | 866 | 1 | 3 | 0 | 1 | 0 | 0 |
| 4 | 1 | 48.0 | 2 | SP | 3530805 | 9 | 2000-01-04 | 15 | 2 | 2000-01-04 | 3 | C539 | C53 | 80703 | IIIB | III | X | X | 0 | X | X | X | 8 | 8 | 8 | 8 | 8 | Sem informação | Sem informação | Sem informação | Sem informação | 2000-05-15 | 8 | B | B | J | J | 0 | 0 | 1 | ... | 0 | 0 | 2016-03-10 | 2 | 0 | 132.0 | 132.0 | 2000 | Sem informação | Sem informação | 40-49 | 8 | 14 | 15 | 1 | NaN | 1 | 0 | 0 | 0 | Sem informação | Sem informação | Sem informação | Sem informação | 3509502 | 0 | 132 | 132 | NaN | NaN | NaN | 5910 | 5910 | 5778 | 0 | 0 | 0 | 0 | 0 | 1 |
5 rows × 94 columns
[ ]:
save_csv(df_SP, '/content/drive/MyDrive/Trabalho/Cancer/Datasets/cancer_SP_labels.csv')
Arquivo csv salvo com sucesso!
Fora de SP
[ ]:
df_fora.head(2)
| ESCOLARI | IDADE | SEXO | UFRESID | IBGE | CATEATEND | DTCONSULT | CLINICA | DIAGPREV | DTDIAG | BASEDIAG | TOPO | TOPOGRUP | MORFO | EC | ECGRUP | T | N | M | PT | PN | PM | G | LOCALTNM | IDMITOTIC | PSA | GLEASON | META01 | META02 | META03 | META04 | DTTRAT | NAOTRAT | TRATAMENTO | TRATHOSP | TRATFANTES | TRATFAPOS | NENHUM | CIRURGIA | RADIO | ... | RADIOAPOS | QUIMIOAPOS | HORMOAPOS | TMOAPOS | IMUNOAPOS | OUTROAPOS | DTULTINFO | ULTINFO | CONSDIAG | TRATCONS | DIAGTRAT | ANODIAG | CICI | CICIGRUP | FAIXAETAR | LATERALI | DRS | RRAS | PERDASEG | DTRECIDIVA | RECNENHUM | RECLOCAL | RECREGIO | RECDIST | REC01 | REC02 | REC03 | REC04 | IBGEATEN | delta_t1 | delta_t2 | delta_t3 | delta_t4 | delta_t5 | delta_t6 | delta_t7 | delta_t8 | delta_t9 | ob | ano_ob | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 5 | 56.0 | 2 | MG | 3167400 | 9 | 2000-01-19 | 33 | 1 | 2000-01-26 | 3 | C509 | C50 | 85202 | I | I | 1 | 0 | 0 | 1 | 0 | 0 | 8 | 8 | 8 | 8 | 8 | Sem informação | Sem informação | Sem informação | Sem informação | 2000-03-22 | 8 | D | D | J | J | 0 | 1 | 1 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 2018-01-24 | 2 | 7 | 63.0 | 56.0 | 2000 | Sem informação | Sem informação | 50-59 | 8 | 0 | 99 | 1 | NaN | 1 | 0 | 0 | 0 | Sem informação | Sem informação | Sem informação | Sem informação | 3509502 | 7 | 56 | 63 | NaN | NaN | NaN | 6580 | 6573 | 6517 | 0 | 0 |
| 1 | 2 | 48.0 | 2 | MG | 3159605 | 9 | 2000-02-07 | 33 | 1 | 2000-03-09 | 3 | C509 | C50 | 80102 | 0 | 0 | IS | 0 | 0 | IS | 0 | 0 | 8 | 8 | 8 | 8 | 8 | Sem informação | Sem informação | Sem informação | Sem informação | 2000-04-06 | 8 | A | A | J | J | 0 | 1 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 2016-04-04 | 2 | 31 | 59.0 | 28.0 | 2000 | Sem informação | Sem informação | 40-49 | 8 | 0 | 99 | 1 | NaN | 1 | 0 | 0 | 0 | Sem informação | Sem informação | Sem informação | Sem informação | 3509502 | 31 | 28 | 59 | NaN | NaN | NaN | 5901 | 5870 | 5842 | 0 | 0 |
2 rows × 90 columns
[ ]:
df_fora = get_label_rec(df_fora)
[ ]:
df_fora.head()
| ESCOLARI | IDADE | SEXO | UFRESID | IBGE | CATEATEND | DTCONSULT | CLINICA | DIAGPREV | DTDIAG | BASEDIAG | TOPO | TOPOGRUP | MORFO | EC | ECGRUP | T | N | M | PT | PN | PM | G | LOCALTNM | IDMITOTIC | PSA | GLEASON | META01 | META02 | META03 | META04 | DTTRAT | NAOTRAT | TRATAMENTO | TRATHOSP | TRATFANTES | TRATFAPOS | NENHUM | CIRURGIA | RADIO | ... | IMUNOAPOS | OUTROAPOS | DTULTINFO | ULTINFO | CONSDIAG | TRATCONS | DIAGTRAT | ANODIAG | CICI | CICIGRUP | FAIXAETAR | LATERALI | DRS | RRAS | PERDASEG | DTRECIDIVA | RECNENHUM | RECLOCAL | RECREGIO | RECDIST | REC01 | REC02 | REC03 | REC04 | IBGEATEN | delta_t1 | delta_t2 | delta_t3 | delta_t4 | delta_t5 | delta_t6 | delta_t7 | delta_t8 | delta_t9 | ob | ano_ob | ob_com_rec | ob_sem_rec | vivo_com_rec | vivo_sem_rec | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 5 | 56.0 | 2 | MG | 3167400 | 9 | 2000-01-19 | 33 | 1 | 2000-01-26 | 3 | C509 | C50 | 85202 | I | I | 1 | 0 | 0 | 1 | 0 | 0 | 8 | 8 | 8 | 8 | 8 | Sem informação | Sem informação | Sem informação | Sem informação | 2000-03-22 | 8 | D | D | J | J | 0 | 1 | 1 | ... | 0 | 0 | 2018-01-24 | 2 | 7 | 63.0 | 56.0 | 2000 | Sem informação | Sem informação | 50-59 | 8 | 0 | 99 | 1 | NaN | 1 | 0 | 0 | 0 | Sem informação | Sem informação | Sem informação | Sem informação | 3509502 | 7 | 56 | 63 | NaN | NaN | NaN | 6580 | 6573 | 6517 | 0 | 0 | 0 | 0 | 0 | 1 |
| 1 | 2 | 48.0 | 2 | MG | 3159605 | 9 | 2000-02-07 | 33 | 1 | 2000-03-09 | 3 | C509 | C50 | 80102 | 0 | 0 | IS | 0 | 0 | IS | 0 | 0 | 8 | 8 | 8 | 8 | 8 | Sem informação | Sem informação | Sem informação | Sem informação | 2000-04-06 | 8 | A | A | J | J | 0 | 1 | 0 | ... | 0 | 0 | 2016-04-04 | 2 | 31 | 59.0 | 28.0 | 2000 | Sem informação | Sem informação | 40-49 | 8 | 0 | 99 | 1 | NaN | 1 | 0 | 0 | 0 | Sem informação | Sem informação | Sem informação | Sem informação | 3509502 | 31 | 28 | 59 | NaN | NaN | NaN | 5901 | 5870 | 5842 | 0 | 0 | 0 | 0 | 0 | 1 |
| 2 | 2 | 63.0 | 2 | MG | 3143401 | 9 | 2000-01-31 | 33 | 1 | 2000-02-09 | 2 | C509 | C50 | 80102 | 0 | 0 | IS | 0 | 0 | IS | 0 | 0 | 8 | 8 | 8 | 8 | 8 | Sem informação | Sem informação | Sem informação | Sem informação | 2000-03-22 | 8 | A | A | J | J | 0 | 1 | 0 | ... | 0 | 0 | 2016-09-14 | 2 | 9 | 51.0 | 42.0 | 2000 | Sem informação | Sem informação | 60-69 | 8 | 0 | 99 | 1 | NaN | 1 | 0 | 0 | 0 | Sem informação | Sem informação | Sem informação | Sem informação | 3509502 | 9 | 42 | 51 | NaN | NaN | NaN | 6071 | 6062 | 6020 | 0 | 0 | 0 | 0 | 0 | 1 |
| 3 | 2 | 52.0 | 2 | MG | 3108305 | 9 | 2000-01-19 | 33 | 1 | 2000-02-01 | 3 | C509 | C50 | 85003 | IIA | II | 2 | 0 | 0 | 1 | 0 | 0 | 8 | 8 | 8 | 8 | 8 | Sem informação | Sem informação | Sem informação | Sem informação | 2000-03-22 | 8 | G | G | J | J | 0 | 1 | 1 | ... | 0 | 0 | 2007-02-04 | 4 | 13 | 63.0 | 50.0 | 2000 | Sem informação | Sem informação | 50-59 | 8 | 0 | 99 | 0 | 2005-09-26 | 0 | 0 | 1 | 0 | C71 | C22 | Sem informação | Sem informação | 3509502 | 13 | 50 | 63 | 2077.0 | 2064.0 | 2014.0 | 2573 | 2560 | 2510 | 1 | 6 | 1 | 0 | 0 | 0 |
| 4 | 9 | 52.0 | 2 | MG | 3113602 | 2 | 2000-03-28 | 33 | 1 | 2000-04-26 | 3 | C509 | C50 | 85003 | IIA | II | 2 | 0 | 0 | X | X | X | 8 | 8 | 8 | 8 | 8 | Sem informação | Sem informação | Sem informação | Sem informação | 2000-04-26 | 8 | F | F | J | J | 0 | 0 | 1 | ... | 0 | 0 | 2012-12-31 | 4 | 29 | 29.0 | 0.0 | 2000 | Sem informação | Sem informação | 50-59 | 8 | 0 | 99 | 0 | NaN | 1 | 0 | 0 | 0 | Sem informação | Sem informação | Sem informação | Sem informação | 3509502 | 29 | 0 | 29 | NaN | NaN | NaN | 4661 | 4632 | 4632 | 1 | 6 | 0 | 1 | 0 | 0 |
5 rows × 94 columns
[ ]:
save_csv(df_fora, '/content/drive/MyDrive/Trabalho/Cancer/Datasets/cancer_foraSP_labels.csv')
Arquivo csv salvo com sucesso!
Verificação dos dados criados¶
[ ]:
df_SP = read_csv('/content/drive/MyDrive/Trabalho/Cancer/Datasets/cancer_SP_labels.csv')
df_fora = read_csv('/content/drive/MyDrive/Trabalho/Cancer/Datasets/cancer_foraSP_labels.csv')
(806402, 94)
(62317, 94)
[ ]:
df_SP.head()
| ESCOLARI | IDADE | SEXO | UFRESID | IBGE | CATEATEND | DTCONSULT | CLINICA | DIAGPREV | DTDIAG | BASEDIAG | TOPO | TOPOGRUP | MORFO | EC | ECGRUP | T | N | M | PT | PN | PM | G | LOCALTNM | IDMITOTIC | PSA | GLEASON | META01 | META02 | META03 | META04 | DTTRAT | NAOTRAT | TRATAMENTO | TRATHOSP | TRATFANTES | TRATFAPOS | NENHUM | CIRURGIA | RADIO | ... | IMUNOAPOS | OUTROAPOS | DTULTINFO | ULTINFO | CONSDIAG | TRATCONS | DIAGTRAT | ANODIAG | CICI | CICIGRUP | FAIXAETAR | LATERALI | DRS | RRAS | PERDASEG | DTRECIDIVA | RECNENHUM | RECLOCAL | RECREGIO | RECDIST | REC01 | REC02 | REC03 | REC04 | IBGEATEN | delta_t1 | delta_t2 | delta_t3 | delta_t4 | delta_t5 | delta_t6 | delta_t7 | delta_t8 | delta_t9 | ob | ano_ob | ob_com_rec | ob_sem_rec | vivo_com_rec | vivo_sem_rec | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 4 | 40.0 | 2 | SP | 3530805 | 9 | 2000-01-03 | 15 | 1 | 2000-01-10 | 3 | C539 | C53 | 81402 | 0 | 0 | X | X | 0 | IS | 0 | 0 | 8 | 8 | 8 | 8 | 8 | Sem informação | Sem informação | Sem informação | Sem informação | 2000-04-07 | 8 | A | A | J | J | 0 | 1 | 0 | ... | 0 | 0 | 2016-09-13 | 2 | 7 | 95.0 | 88.0 | 2000 | Sem informação | Sem informação | 40-49 | 8 | 14 | 15 | 1 | NaN | 1 | 0 | 0 | 0 | Sem informação | Sem informação | Sem informação | Sem informação | 3509502 | 7 | 88 | 95 | NaN | NaN | NaN | 6098 | 6091 | 6003 | 0 | 0 | 0 | 0 | 0 | 1 |
| 1 | 9 | 45.0 | 2 | SP | 3509502 | 9 | 2000-01-05 | 15 | 1 | 2000-01-17 | 3 | C539 | C53 | 80703 | IIIB | III | X | X | 0 | X | X | X | 8 | 8 | 8 | 8 | 8 | Sem informação | Sem informação | Sem informação | Sem informação | 2000-01-20 | 8 | F | F | J | J | 0 | 0 | 1 | ... | 0 | 0 | 2002-08-25 | 3 | 12 | 15.0 | 3.0 | 2000 | Sem informação | Sem informação | 40-49 | 8 | 7 | 15 | 0 | NaN | 1 | 0 | 0 | 0 | Sem informação | Sem informação | Sem informação | Sem informação | 3509502 | 12 | 3 | 15 | NaN | NaN | NaN | 963 | 951 | 948 | 1 | 3 | 0 | 1 | 0 | 0 |
| 2 | 2 | 63.0 | 2 | SP | 3509502 | 9 | 2000-01-19 | 15 | 1 | 2000-01-25 | 3 | C539 | C53 | 80703 | IIIB | III | X | X | 0 | X | X | X | 8 | 8 | 8 | 8 | 8 | Sem informação | Sem informação | Sem informação | Sem informação | 2000-02-03 | 8 | B | B | J | J | 0 | 0 | 1 | ... | 0 | 0 | 2001-03-20 | 3 | 6 | 15.0 | 9.0 | 2000 | Sem informação | Sem informação | 60-69 | 8 | 7 | 15 | 0 | NaN | 1 | 0 | 0 | 0 | Sem informação | Sem informação | Sem informação | Sem informação | 3509502 | 6 | 9 | 15 | NaN | NaN | NaN | 426 | 420 | 411 | 1 | 2 | 0 | 1 | 0 | 0 |
| 3 | 9 | 64.0 | 2 | SP | 3545803 | 9 | 2000-01-28 | 15 | 1 | 2000-02-03 | 3 | C539 | C53 | 80703 | IIIB | III | X | X | 0 | X | X | X | 8 | 8 | 8 | 8 | 8 | Sem informação | Sem informação | Sem informação | Sem informação | 2000-03-01 | 8 | B | B | J | J | 0 | 0 | 1 | ... | 0 | 0 | 2002-07-15 | 3 | 6 | 33.0 | 27.0 | 2000 | Sem informação | Sem informação | 60-69 | 8 | 7 | 15 | 0 | NaN | 1 | 0 | 0 | 0 | Sem informação | Sem informação | Sem informação | Sem informação | 3509502 | 6 | 27 | 33 | NaN | NaN | NaN | 899 | 893 | 866 | 1 | 3 | 0 | 1 | 0 | 0 |
| 4 | 1 | 48.0 | 2 | SP | 3530805 | 9 | 2000-01-04 | 15 | 2 | 2000-01-04 | 3 | C539 | C53 | 80703 | IIIB | III | X | X | 0 | X | X | X | 8 | 8 | 8 | 8 | 8 | Sem informação | Sem informação | Sem informação | Sem informação | 2000-05-15 | 8 | B | B | J | J | 0 | 0 | 1 | ... | 0 | 0 | 2016-03-10 | 2 | 0 | 132.0 | 132.0 | 2000 | Sem informação | Sem informação | 40-49 | 8 | 14 | 15 | 1 | NaN | 1 | 0 | 0 | 0 | Sem informação | Sem informação | Sem informação | Sem informação | 3509502 | 0 | 132 | 132 | NaN | NaN | NaN | 5910 | 5910 | 5778 | 0 | 0 | 0 | 0 | 0 | 1 |
5 rows × 94 columns
[ ]:
df_fora.head()
| ESCOLARI | IDADE | SEXO | UFRESID | IBGE | CATEATEND | DTCONSULT | CLINICA | DIAGPREV | DTDIAG | BASEDIAG | TOPO | TOPOGRUP | MORFO | EC | ECGRUP | T | N | M | PT | PN | PM | G | LOCALTNM | IDMITOTIC | PSA | GLEASON | META01 | META02 | META03 | META04 | DTTRAT | NAOTRAT | TRATAMENTO | TRATHOSP | TRATFANTES | TRATFAPOS | NENHUM | CIRURGIA | RADIO | ... | IMUNOAPOS | OUTROAPOS | DTULTINFO | ULTINFO | CONSDIAG | TRATCONS | DIAGTRAT | ANODIAG | CICI | CICIGRUP | FAIXAETAR | LATERALI | DRS | RRAS | PERDASEG | DTRECIDIVA | RECNENHUM | RECLOCAL | RECREGIO | RECDIST | REC01 | REC02 | REC03 | REC04 | IBGEATEN | delta_t1 | delta_t2 | delta_t3 | delta_t4 | delta_t5 | delta_t6 | delta_t7 | delta_t8 | delta_t9 | ob | ano_ob | ob_com_rec | ob_sem_rec | vivo_com_rec | vivo_sem_rec | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 5 | 56.0 | 2 | MG | 3167400 | 9 | 2000-01-19 | 33 | 1 | 2000-01-26 | 3 | C509 | C50 | 85202 | I | I | 1 | 0 | 0 | 1 | 0 | 0 | 8 | 8 | 8 | 8 | 8 | Sem informação | Sem informação | Sem informação | Sem informação | 2000-03-22 | 8 | D | D | J | J | 0 | 1 | 1 | ... | 0 | 0 | 2018-01-24 | 2 | 7 | 63.0 | 56.0 | 2000 | Sem informação | Sem informação | 50-59 | 8 | 0 | 99 | 1 | NaN | 1 | 0 | 0 | 0 | Sem informação | Sem informação | Sem informação | Sem informação | 3509502 | 7 | 56 | 63 | NaN | NaN | NaN | 6580 | 6573 | 6517 | 0 | 0 | 0 | 0 | 0 | 1 |
| 1 | 2 | 48.0 | 2 | MG | 3159605 | 9 | 2000-02-07 | 33 | 1 | 2000-03-09 | 3 | C509 | C50 | 80102 | 0 | 0 | IS | 0 | 0 | IS | 0 | 0 | 8 | 8 | 8 | 8 | 8 | Sem informação | Sem informação | Sem informação | Sem informação | 2000-04-06 | 8 | A | A | J | J | 0 | 1 | 0 | ... | 0 | 0 | 2016-04-04 | 2 | 31 | 59.0 | 28.0 | 2000 | Sem informação | Sem informação | 40-49 | 8 | 0 | 99 | 1 | NaN | 1 | 0 | 0 | 0 | Sem informação | Sem informação | Sem informação | Sem informação | 3509502 | 31 | 28 | 59 | NaN | NaN | NaN | 5901 | 5870 | 5842 | 0 | 0 | 0 | 0 | 0 | 1 |
| 2 | 2 | 63.0 | 2 | MG | 3143401 | 9 | 2000-01-31 | 33 | 1 | 2000-02-09 | 2 | C509 | C50 | 80102 | 0 | 0 | IS | 0 | 0 | IS | 0 | 0 | 8 | 8 | 8 | 8 | 8 | Sem informação | Sem informação | Sem informação | Sem informação | 2000-03-22 | 8 | A | A | J | J | 0 | 1 | 0 | ... | 0 | 0 | 2016-09-14 | 2 | 9 | 51.0 | 42.0 | 2000 | Sem informação | Sem informação | 60-69 | 8 | 0 | 99 | 1 | NaN | 1 | 0 | 0 | 0 | Sem informação | Sem informação | Sem informação | Sem informação | 3509502 | 9 | 42 | 51 | NaN | NaN | NaN | 6071 | 6062 | 6020 | 0 | 0 | 0 | 0 | 0 | 1 |
| 3 | 2 | 52.0 | 2 | MG | 3108305 | 9 | 2000-01-19 | 33 | 1 | 2000-02-01 | 3 | C509 | C50 | 85003 | IIA | II | 2 | 0 | 0 | 1 | 0 | 0 | 8 | 8 | 8 | 8 | 8 | Sem informação | Sem informação | Sem informação | Sem informação | 2000-03-22 | 8 | G | G | J | J | 0 | 1 | 1 | ... | 0 | 0 | 2007-02-04 | 4 | 13 | 63.0 | 50.0 | 2000 | Sem informação | Sem informação | 50-59 | 8 | 0 | 99 | 0 | 2005-09-26 | 0 | 0 | 1 | 0 | C71 | C22 | Sem informação | Sem informação | 3509502 | 13 | 50 | 63 | 2077.0 | 2064.0 | 2014.0 | 2573 | 2560 | 2510 | 1 | 6 | 1 | 0 | 0 | 0 |
| 4 | 9 | 52.0 | 2 | MG | 3113602 | 2 | 2000-03-28 | 33 | 1 | 2000-04-26 | 3 | C509 | C50 | 85003 | IIA | II | 2 | 0 | 0 | X | X | X | 8 | 8 | 8 | 8 | 8 | Sem informação | Sem informação | Sem informação | Sem informação | 2000-04-26 | 8 | F | F | J | J | 0 | 0 | 1 | ... | 0 | 0 | 2012-12-31 | 4 | 29 | 29.0 | 0.0 | 2000 | Sem informação | Sem informação | 50-59 | 8 | 0 | 99 | 0 | NaN | 1 | 0 | 0 | 0 | Sem informação | Sem informação | Sem informação | Sem informação | 3509502 | 29 | 0 | 29 | NaN | NaN | NaN | 4661 | 4632 | 4632 | 1 | 6 | 0 | 1 | 0 | 0 |
5 rows × 94 columns
Features das datas¶
Consulta - \(t_1\)
Diagnóstico - \(t_2\)
Tratamento - \(t_3\)
Recidiva - \(t_4\)
Última informação - \(t_5\)
Diferenças, em dias, entre as datas:
Recidiva:
Última informação:
SP
[ ]:
# Diagnóstico antes da consulta
df_SP[df_SP.delta_t1 < 0].shape
(252771, 94)
[ ]:
# Tratamento antes do diagnóstico
df_SP[df_SP.delta_t2 < 0].shape
(0, 94)
[ ]:
# Tratamento antes da consulta
df_SP[df_SP.delta_t3 < 0].shape
(0, 94)
[ ]:
# Recidiva antes da consulta
df_SP[df_SP.delta_t4 < 0].shape
(609, 94)
[ ]:
df_SP.delta_t4.isna().sum()
717377
[ ]:
# Recidiva antes do diagnóstico
df_SP[df_SP.delta_t5 < 0].shape
(124, 94)
[ ]:
df_SP.delta_t5.isna().sum()
717377
[ ]:
# Recidiva antes do tratamento
df_SP[df_SP.delta_t6 < 0].shape
(2159, 94)
[ ]:
df_SP.delta_t6.isna().sum()
717377
[ ]:
# Última informação antes da consulta
df_SP[df_SP.delta_t7 < 0].shape
(20, 94)
[ ]:
# # Última informação antes do diagnóstico
df_SP[df_SP.delta_t8 < 0].shape
(15, 94)
[ ]:
# Última informação antes do tratamento
df_SP[df_SP.delta_t9 < 0].shape
(468, 94)
Fora de SP
[ ]:
# Diagnóstico antes da consulta
df_fora[df_fora.delta_t1 < 0].shape
(24578, 94)
[ ]:
# Tratamento antes do diagnóstico
df_fora[df_fora.delta_t2 < 0].shape
(0, 94)
[ ]:
# Tratamento antes da consulta
df_fora[df_fora.delta_t3 < 0].shape
(0, 94)
[ ]:
# Recidiva antes da consulta
df_fora[df_fora.delta_t4 < 0].shape
(12, 94)
[ ]:
df_fora.delta_t4.isna().sum()
57799
[ ]:
# Recidiva antes do diagnóstico
df_fora[df_fora.delta_t5 < 0].shape
(4, 94)
[ ]:
df_fora.delta_t5.isna().sum()
57799
[ ]:
# Recidiva antes do tratamento
df_fora[df_fora.delta_t6 < 0].shape
(62, 94)
[ ]:
df_fora.delta_t6.isna().sum()
57799
[ ]:
# Última informação antes da consulta
df_fora[df_fora.delta_t7 < 0].shape
(2, 94)
[ ]:
# Última informação antes do diagnóstico
df_fora[df_fora.delta_t8 < 0].shape
(3, 94)
[ ]:
# Última informação antes do tratamento
df_fora[df_fora.delta_t9 < 0].shape
(169, 94)
Labels óbito¶
Óbito em qualquer momento - ob
Ano do óbito em relação a data do diagnóstico - ano_ob
0 - Paciente está vivo;
1 - Óbito no primeiro ano;
2 - Óbito no segundo ano;
3 - Óbito no terceiro ano;
4 - Óbito no quarto ano;
5 - Óbito no quinto ano;
6 - Óbito com mais de 5 ano;
SP
[ ]:
df_SP.ob.value_counts()
0 480724
1 325678
Name: ob, dtype: int64
[ ]:
df_SP.ano_ob.value_counts()
0 480724
1 121819
2 67264
6 56871
3 37305
4 24567
5 17852
Name: ano_ob, dtype: int64
Fora de SP
[ ]:
df_fora.ob.value_counts()
0 44591
1 17726
Name: ob, dtype: int64
[ ]:
df_fora.ano_ob.value_counts()
0 44591
1 7294
2 3986
6 2230
3 2048
4 1300
5 868
Name: ano_ob, dtype: int64
Labels recidiva¶
Óbito sem recidiva - ob_sem_rec
Óbito com recidiva - ob_com_rec
Vivos sem recidiva - vivo_sem_rec
Vivos com recidiva - vivo_com_rec
SP
[ ]:
df_SP.ob_sem_rec.value_counts()
0 532957
1 273445
Name: ob_sem_rec, dtype: int64
[ ]:
df_SP.ob_com_rec.value_counts()
0 754169
1 52233
Name: ob_com_rec, dtype: int64
[ ]:
df_SP.vivo_sem_rec.value_counts()
1 459188
0 347214
Name: vivo_sem_rec, dtype: int64
[ ]:
df_SP.vivo_com_rec.value_counts()
0 784866
1 21536
Name: vivo_com_rec, dtype: int64
Fora de SP
[ ]:
df_fora.ob_sem_rec.value_counts()
0 46419
1 15898
Name: ob_sem_rec, dtype: int64
[ ]:
df_fora.ob_com_rec.value_counts()
0 60489
1 1828
Name: ob_com_rec, dtype: int64
[ ]:
df_fora.vivo_sem_rec.value_counts()
1 43239
0 19078
Name: vivo_sem_rec, dtype: int64
[ ]:
df_fora.vivo_com_rec.value_counts()
0 60965
1 1352
Name: vivo_com_rec, dtype: int64
Label = ob¶
Dados¶
[ ]:
df_SP = read_csv('/content/drive/MyDrive/Trabalho/Cancer/Datasets/cancer_SP_labels.csv')
df_fora = read_csv('/content/drive/MyDrive/Trabalho/Cancer/Datasets/cancer_foraSP_labels.csv')
(806402, 94)
(62317, 94)
SP
[ ]:
df_SP.isna().sum().sort_values(ascending=False).head(6)
DTRECIDIVA 717377
delta_t6 717377
delta_t5 717377
delta_t4 717377
IDADE 1
TRATAMENTO 0
dtype: int64
[ ]:
corr_matrix = df_SP.corr()
abs(corr_matrix['ob']).sort_values(ascending = False).head(20)
ob 1.000000
vivo_sem_rec 0.946549
ob_sem_rec 0.870247
ULTINFO 0.868236
ano_ob 0.750408
PERDASEG 0.378763
ob_com_rec 0.319736
ANODIAG 0.269601
CIRURGIA 0.249248
QUIMIO 0.244519
delta_t7 0.216269
delta_t8 0.216105
delta_t9 0.212633
CATEATEND 0.212081
RECNENHUM 0.196724
delta_t5 0.169360
delta_t4 0.167767
delta_t6 0.160751
RECREGIO 0.141924
IDADE 0.136383
Name: ob, dtype: float64
[ ]:
df_SP.ob.value_counts()
0 480724
1 325678
Name: ob, dtype: int64
[ ]:
df_SP['ob'][df_SP.PERDASEG == 1].value_counts()
0 140925
1 1
Name: ob, dtype: int64
Fora de SP
[ ]:
df_fora.isna().sum().sort_values(ascending=False).head(6)
DTRECIDIVA 57799
delta_t6 57799
delta_t5 57799
delta_t4 57799
NAOTRAT 0
LOCALTNM 0
dtype: int64
[ ]:
corr_matrix = df_fora.corr()
abs(corr_matrix['ob']).sort_values(ascending = False).head(20)
ob 1.000000
vivo_sem_rec 0.949190
ob_sem_rec 0.928200
ULTINFO 0.854305
ano_ob 0.772548
PERDASEG 0.359090
ob_com_rec 0.275720
CIRURGIA 0.257715
QUIMIO 0.253681
ANODIAG 0.252079
CATEATEND 0.209850
delta_t5 0.168003
delta_t8 0.167875
delta_t4 0.166380
delta_t7 0.165922
delta_t9 0.164855
delta_t6 0.163108
RECNENHUM 0.149262
RADIO 0.139862
GLEASON 0.104262
Name: ob, dtype: float64
[ ]:
df_fora.ob.value_counts()
0 44591
1 17726
Name: ob, dtype: int64
[ ]:
df_fora['ob'][df_fora.PERDASEG == 1].value_counts()
0 15263
Name: ob, dtype: int64
Divisão em treino e teste¶
[ ]:
list_drop = ['UFRESID', 'DTCONSULT', 'DTDIAG', 'DTTRAT', 'DTRECIDIVA', 'DTULTINFO',
'IDADE', 'PERDASEG', 'CONSDIAG', 'TRATCONS', 'DIAGTRAT', 'delta_t4',
'delta_t5', 'delta_t6', 'delta_t7', 'delta_t8', 'delta_t9', 'ano_ob',
'ob_com_rec', 'ob_sem_rec', 'vivo_com_rec', 'vivo_sem_rec', 'ULTINFO']
lb = 'ob'
SP
[ ]:
X_trainSP, X_testSP, y_trainSP, y_testSP = get_train_test(df_SP, list_drop, lb)
X_train = (604801, 70), X_test = (201601, 70)
y_train = (604801,), y_test = (201601,)
Fora de SP
[ ]:
X_trainFora, X_testFora, y_trainFora, y_testFora = get_train_test(df_fora, list_drop, lb)
X_train = (46737, 70), X_test = (15580, 70)
y_train = (46737,), y_test = (15580,)
Encoder e normalização¶
SP
[ ]:
X_trainSP_enc, enc_SP, norm_SP = train_preprocessing(X_trainSP, normalizer='StandardScaler')
Fora de SP
[ ]:
X_trainFora_enc, enc_fora, norm_fora = train_preprocessing(X_trainFora, normalizer='StandardScaler')
PCA¶
SP
[ ]:
pca = PCA()
principalComponents = pca.fit_transform(X_trainSP_enc)
[ ]:
fig = go.Figure()
fig.add_trace(
go.Scatter(
x=np.linspace(1, 70, 70),
y=np.cumsum(pca.explained_variance_ratio_),
line_shape='hv',
))
fig.add_trace(
go.Bar(
x=np.linspace(1, 70, 70),
y=pca.explained_variance_ratio_
))
fig.update_layout(yaxis_title='Variância que pode ser "explicada"', xaxis_title='Número de componentes principais')
fig.show()
Fora de SP
[ ]:
pca = PCA()
principalComponents = pca.fit_transform(X_trainFora_enc)
[ ]:
fig = go.Figure()
fig.add_trace(
go.Scatter(
x=np.linspace(1, 70, 70),
y=np.cumsum(pca.explained_variance_ratio_),
line_shape='hv',
))
fig.add_trace(
go.Bar(
x=np.linspace(1, 70, 70),
y=pca.explained_variance_ratio_
))
fig.update_layout(yaxis_title='Variância que pode ser "explicada"', xaxis_title='Número de componentes principais')
fig.show()
Balanceamento dos dados¶
SP
[ ]:
# Quantidade de valores para cada label nos dados de treino
y_trainSP.value_counts()
0 360572
1 244229
Name: ob, dtype: int64
[ ]:
rus = RandomUnderSampler(random_state=seed)
X_SP, y_SP = rus.fit_sample(X_trainSP_enc, y_trainSP)
[ ]:
y_SP.shape
(488458,)
Fora de SP
[ ]:
# Quantidade de valores para cada label nos dados de treino
y_trainFora.value_counts()
0 33365
1 13372
Name: ob, dtype: int64
[ ]:
X_fora, y_fora = SMOTE(random_state=seed).fit_resample(X_trainFora_enc, y_trainFora)
[ ]:
y_fora.shape
(66730,)
Treinamento dos modelos de Machine Learning¶
Random Forest¶
[ ]:
# SP
rf_sp = RandomForestClassifier(random_state=seed)
rf_sp.fit(X_SP, y_SP)
RandomForestClassifier(bootstrap=True, ccp_alpha=0.0, class_weight=None,
criterion='gini', max_depth=None, max_features='auto',
max_leaf_nodes=None, max_samples=None,
min_impurity_decrease=0.0, min_impurity_split=None,
min_samples_leaf=1, min_samples_split=2,
min_weight_fraction_leaf=0.0, n_estimators=100,
n_jobs=None, oob_score=False, random_state=10, verbose=0,
warm_start=False)
[ ]:
# Fora
rf_fora = RandomForestClassifier(random_state=seed, class_weight={0: 10, 1: 0.0001})
rf_fora.fit(X_fora, y_fora)
RandomForestClassifier(bootstrap=True, ccp_alpha=0.0,
class_weight={0: 10, 1: 0.0001}, criterion='gini',
max_depth=None, max_features='auto', max_leaf_nodes=None,
max_samples=None, min_impurity_decrease=0.0,
min_impurity_split=None, min_samples_leaf=1,
min_samples_split=2, min_weight_fraction_leaf=0.0,
n_estimators=100, n_jobs=None, oob_score=False,
random_state=10, verbose=0, warm_start=False)
XGBoost¶
[ ]:
# SP
xgboost_sp = xgb.XGBClassifier(max_depth=15, random_state=seed)
xgboost_sp.fit(X_SP, y_SP)
XGBClassifier(base_score=0.5, booster='gbtree', colsample_bylevel=1,
colsample_bynode=1, colsample_bytree=1, gamma=0,
learning_rate=0.1, max_delta_step=0, max_depth=15,
min_child_weight=1, missing=None, n_estimators=100, n_jobs=1,
nthread=None, objective='binary:logistic', random_state=10,
reg_alpha=0, reg_lambda=1, scale_pos_weight=1, seed=None,
silent=None, subsample=1, verbosity=1)
[ ]:
# Fora de SP
xgboost_fora = xgb.XGBClassifier(max_depth=15, scale_pos_weight=10,
random_state=seed)
xgboost_fora.fit(X_fora, y_fora)
XGBClassifier(base_score=0.5, booster='gbtree', colsample_bylevel=1,
colsample_bynode=1, colsample_bytree=1, gamma=0,
learning_rate=0.1, max_delta_step=0, max_depth=15,
min_child_weight=1, missing=None, n_estimators=100, n_jobs=1,
nthread=None, objective='binary:logistic', random_state=10,
reg_alpha=0, reg_lambda=1, scale_pos_weight=10, seed=None,
silent=None, subsample=1, verbosity=1)
Salvando modelos¶
[ ]:
#with open('/content/drive/MyDrive/Trabalho/Cancer/Modelos/models_SP.pkl', 'wb') as arq:
#pickle.dump(
#{'X_train': X_SP, 'y_train': y_SP, 'Encoders': enc_SP,
#'Normalizer': norm_SP, 'Random Forest': rf_sp, 'XGB': xgboost_sp}, arq)
[ ]:
#with open('/content/drive/MyDrive/Trabalho/Cancer/Modelos/models_foraSP.pkl', 'wb') as arq:
#pickle.dump(
#{'X_train': X_fora, 'y_train': y_fora, 'Encoders': enc_fora,
#'Normalizer': norm_fora, 'Random Forest': rf_fora, 'XGB': xgboost_fora}, arq)
Validação dos modelos¶
Pré-processamento dos dados de teste¶
[ ]:
# SP
X_testSP_ = test_preprocessing(X_testSP, enc_SP, norm_SP)
[ ]:
# Fora de SP
X_testFora_ = test_preprocessing(X_testFora, enc_fora, norm_fora)
Random Forest¶
[ ]:
plot_confusion_matrix(rf_sp, X_testSP_, y_testSP, cmap='Blues', normalize="true", values_format='.2f')
plt.show()
[ ]:
plot_feat_importances(rf_sp, X_testSP)
[ ]:
plot_confusion_matrix(rf_fora, X_testFora_, y_testFora, cmap='Blues', normalize="true", values_format='.2f')
plt.show()
[ ]:
plot_feat_importances(rf_fora, X_testFora)
XGBoost¶
[ ]:
plot_confusion_matrix(xgboost_sp, X_testSP_, y_testSP, cmap='Blues', normalize='true', values_format='.2f')
plt.show()
[ ]:
plot_feat_importances(xgboost_sp, X_testSP)
[ ]:
plot_confusion_matrix(xgboost_fora, X_testFora_, y_testFora, cmap='Blues', normalize="true", values_format='.2f')
plt.show()
[ ]:
plot_feat_importances(xgboost_fora, X_testFora)
Label = RECNENHUM¶
Dados¶
[ ]:
df_SP = read_csv('/content/drive/MyDrive/Trabalho/Cancer/Datasets/cancer_SP_labels.csv')
df_fora = read_csv('/content/drive/MyDrive/Trabalho/Cancer/Datasets/cancer_foraSP_labels.csv')
(806402, 94)
(62317, 94)
SP
[ ]:
df_SP.isna().sum().sort_values(ascending=False).head(6)
DTRECIDIVA 717377
delta_t6 717377
delta_t5 717377
delta_t4 717377
IDADE 1
TRATAMENTO 0
dtype: int64
[ ]:
corr_matrix = df_SP.corr()
abs(corr_matrix['RECNENHUM']).sort_values(ascending = False).head(20)
RECNENHUM 1.000000
ob_com_rec 0.829363
RECLOCAL 0.679652
RECREGIO 0.529338
vivo_com_rec 0.522025
RECDIST 0.497837
vivo_sem_rec 0.364914
ano_ob 0.242833
ob_sem_rec 0.227291
ob 0.196724
QUIMIO 0.147652
RADIO 0.085910
ULTINFO 0.081964
PERDASEG 0.070304
delta_t8 0.064934
delta_t7 0.063559
delta_t9 0.063466
IBGEATEN 0.062526
delta_t5 0.058940
delta_t4 0.055412
Name: RECNENHUM, dtype: float64
Fora de SP
[ ]:
df_fora.isna().sum().sort_values(ascending=False).head(6)
DTRECIDIVA 57799
delta_t6 57799
delta_t5 57799
delta_t4 57799
NAOTRAT 0
LOCALTNM 0
dtype: int64
[ ]:
corr_matrix = df_fora.corr()
abs(corr_matrix['RECNENHUM']).sort_values(ascending = False).head(20)
RECNENHUM 1.000000
ob_com_rec 0.749663
RECLOCAL 0.695533
vivo_com_rec 0.642191
RECDIST 0.579667
RECREGIO 0.430531
vivo_sem_rec 0.349104
ano_ob 0.217344
ob 0.149262
ob_sem_rec 0.135709
QUIMIO 0.130924
delta_t8 0.104972
delta_t9 0.103801
delta_t7 0.103667
delta_t5 0.087167
delta_t4 0.082168
delta_t6 0.081259
IDADE 0.074725
RADIO 0.074704
DIAGPREV 0.062018
Name: RECNENHUM, dtype: float64
Divisão em treino e teste¶
[ ]:
df_SP.RECNENHUM.value_counts()
1 732633
0 73769
Name: RECNENHUM, dtype: int64
[ ]:
n_samples = 400000
df_SP_rec = df_SP[df_SP.RECNENHUM == 1].sample(n_samples, random_state=seed).sort_index()
df_SP_sem_rec = df_SP[df_SP.RECNENHUM == 0]
df_SP_menor = pd.concat([df_SP_rec, df_SP_sem_rec]).sort_index()
df_SP_menor.RECNENHUM.value_counts()
1 400000
0 73769
Name: RECNENHUM, dtype: int64
[ ]:
df_fora.RECNENHUM.value_counts()
1 59137
0 3180
Name: RECNENHUM, dtype: int64
[ ]:
list_drop = ['UFRESID', 'DTCONSULT', 'DTDIAG', 'DTTRAT', 'DTRECIDIVA', 'DTULTINFO',
'IDADE', 'PERDASEG', 'CONSDIAG', 'TRATCONS', 'DIAGTRAT', 'RECLOCAL',
'RECREGIO', 'RECDIST', 'REC01', 'REC02', 'REC03', 'REC04', 'delta_t4',
'delta_t5', 'delta_t6', 'delta_t7', 'delta_t8', 'delta_t9', 'ob', 'ano_ob',
'ob_com_rec', 'ob_sem_rec', 'vivo_com_rec', 'vivo_sem_rec', 'ULTINFO']
label = 'RECNENHUM'
SP
[ ]:
X_trainSP, X_testSP, y_trainSP, y_testSP = get_train_test(df_SP_menor, list_drop, label)
X_train = (355326, 62), X_test = (118443, 62)
y_train = (355326,), y_test = (118443,)
Fora de SP
[ ]:
X_trainFora, X_testFora, y_trainFora, y_testFora = get_train_test(df_fora, list_drop, label)
X_train = (46737, 62), X_test = (15580, 62)
y_train = (46737,), y_test = (15580,)
Encoder e normalização¶
SP
[ ]:
X_trainSP_enc, enc_SP, norm_SP = train_preprocessing(X_trainSP, normalizer='StandardScaler')
Fora de SP
[ ]:
X_trainFora_enc, enc_fora, norm_fora = train_preprocessing(X_trainFora, normalizer='StandardScaler')
PCA¶
SP
[ ]:
pca = PCA()
principalComponents = pca.fit_transform(X_trainSP_enc)
fig = go.Figure()
fig.add_trace(
go.Scatter(
x=np.linspace(1, X_trainSP_enc.shape[0], X_trainSP_enc.shape[0]),
y=np.cumsum(pca.explained_variance_ratio_),
line_shape='hv',
))
fig.add_trace(
go.Bar(
x=np.linspace(1, X_trainSP_enc.shape[0], X_trainSP_enc.shape[0]),
y=pca.explained_variance_ratio_
))
fig.update_layout(yaxis_title='Variância que pode ser "explicada"', xaxis_title='Número de componentes principais')
fig.show()
Fora de SP
[ ]:
pca = PCA()
principalComponents = pca.fit_transform(X_trainFora_enc)
fig = go.Figure()
fig.add_trace(
go.Scatter(
x=np.linspace(1, X_trainFora_enc.shape[0], X_trainFora_enc.shape[0]),
y=np.cumsum(pca.explained_variance_ratio_),
line_shape='hv',
))
fig.add_trace(
go.Bar(
x=np.linspace(1, X_trainFora_enc.shape[0], X_trainFora_enc.shape[0]),
y=pca.explained_variance_ratio_
))
fig.update_layout(yaxis_title='Variância que pode ser "explicada"', xaxis_title='Número de componentes principais')
fig.show()
Balanceamento dos dados¶
SP
[ ]:
# Quantidade de valores para cada label nos dados de treino
y_trainSP.value_counts()
1 300057
0 55269
Name: RECNENHUM, dtype: int64
[ ]:
X_SP, y_SP = SMOTE(random_state=seed).fit_resample(X_trainSP_enc, y_trainSP)
[ ]:
y_SP.shape
(600114,)
Fora de SP
[ ]:
# Quantidade de valores para cada label nos dados de treino
y_trainFora.value_counts()
1 44367
0 2370
Name: RECNENHUM, dtype: int64
[ ]:
X_fora, y_fora = SMOTE(random_state=seed).fit_resample(X_trainFora_enc, y_trainFora)
[ ]:
y_fora.shape
(88734,)
Treinamento dos modelos de Machine Learning¶
Random Forest¶
[ ]:
# SP
rf_sp = RandomForestClassifier(random_state=seed,
class_weight={0: 20, 1: 0.00006})
rf_sp.fit(X_SP, y_SP)
RandomForestClassifier(bootstrap=True, ccp_alpha=0.0,
class_weight={0: 20, 1: 6e-05}, criterion='gini',
max_depth=None, max_features='auto', max_leaf_nodes=None,
max_samples=None, min_impurity_decrease=0.0,
min_impurity_split=None, min_samples_leaf=1,
min_samples_split=2, min_weight_fraction_leaf=0.0,
n_estimators=100, n_jobs=None, oob_score=False,
random_state=10, verbose=0, warm_start=False)
[ ]:
# Fora
rf_fora = RandomForestClassifier(random_state=seed,
class_weight={0: 24, 1: 0.000022})
rf_fora.fit(X_fora, y_fora)
RandomForestClassifier(bootstrap=True, ccp_alpha=0.0,
class_weight={0: 24, 1: 2.2e-05}, criterion='gini',
max_depth=None, max_features='auto', max_leaf_nodes=None,
max_samples=None, min_impurity_decrease=0.0,
min_impurity_split=None, min_samples_leaf=1,
min_samples_split=2, min_weight_fraction_leaf=0.0,
n_estimators=100, n_jobs=None, oob_score=False,
random_state=10, verbose=0, warm_start=False)
XGBoost¶
[ ]:
# SP
xgboost_sp = xgb.XGBClassifier(max_depth=15,
scale_pos_weight=0.15,
random_state=seed)
xgboost_sp.fit(X_SP, y_SP)
XGBClassifier(base_score=0.5, booster='gbtree', colsample_bylevel=1,
colsample_bynode=1, colsample_bytree=1, gamma=0,
learning_rate=0.1, max_delta_step=0, max_depth=15,
min_child_weight=1, missing=None, n_estimators=100, n_jobs=1,
nthread=None, objective='binary:logistic', random_state=10,
reg_alpha=0, reg_lambda=1, scale_pos_weight=0.15, seed=None,
silent=None, subsample=1, verbosity=1)
[ ]:
# Fora de SP
xgboost_fora = xgb.XGBClassifier(max_depth=15,
scale_pos_weight=0.02, # 0.05 e 0.01
random_state=seed)
xgboost_fora.fit(X_fora, y_fora)
XGBClassifier(base_score=0.5, booster='gbtree', colsample_bylevel=1,
colsample_bynode=1, colsample_bytree=1, gamma=0,
learning_rate=0.1, max_delta_step=0, max_depth=15,
min_child_weight=1, missing=None, n_estimators=100, n_jobs=1,
nthread=None, objective='binary:logistic', random_state=10,
reg_alpha=0, reg_lambda=1, scale_pos_weight=0.02, seed=None,
silent=None, subsample=1, verbosity=1)
Validação dos modelos¶
Pré-processamento dos dados de teste¶
[ ]:
# SP
X_testSP_ = test_preprocessing(X_testSP, enc_SP, norm_SP)
[ ]:
# Fora de SP
X_testFora_ = test_preprocessing(X_testFora, enc_fora, norm_fora)
Random Forest¶
[ ]:
plot_confusion_matrix(rf_sp, X_testSP_, y_testSP, cmap='Blues', normalize="true", values_format='.2f')
plt.show()
[ ]:
plot_feat_importances(rf_sp, X_testSP)
[ ]:
plot_confusion_matrix(rf_fora, X_testFora_, y_testFora, cmap='Blues', normalize="true", values_format='.2f')
plt.show()
[ ]:
plot_feat_importances(rf_fora, X_testFora)
XGBoost¶
[ ]:
plot_confusion_matrix(xgboost_sp, X_testSP_, y_testSP, cmap='Blues', normalize="true", values_format='.2f')
plt.show()
[ ]:
plot_feat_importances(xgboost_sp, X_testSP)
[ ]:
plot_confusion_matrix(xgboost_fora, X_testFora_, y_testFora, cmap='Blues', normalize="true", values_format='.2f')
plt.show()
[ ]:
plot_feat_importances(xgboost_fora, X_testFora)
Label = RECDIST¶
Dados¶
[ ]:
df_SP = read_csv('/content/drive/MyDrive/Trabalho/Cancer/Datasets/cancer_SP_labels.csv')
df_fora = read_csv('/content/drive/MyDrive/Trabalho/Cancer/Datasets/cancer_foraSP_labels.csv')
(806402, 94)
(62317, 94)
SP
[ ]:
df_SP.isna().sum().sort_values(ascending=False).head(6)
DTRECIDIVA 717377
delta_t6 717377
delta_t5 717377
delta_t4 717377
IDADE 1
TRATAMENTO 0
dtype: int64
[ ]:
corr_matrix = df_SP.corr()
abs(corr_matrix['RECDIST']).sort_values(ascending = False).head(20)
RECDIST 1.000000
RECNENHUM 0.497837
ob_com_rec 0.427203
vivo_com_rec 0.238029
vivo_sem_rec 0.181668
ano_ob 0.119045
ob_sem_rec 0.113154
QUIMIO 0.109437
ob 0.105117
CATEATEND 0.093630
ANODIAG 0.084918
LATERALI 0.081624
RECLOCAL 0.058266
PERDASEG 0.055281
HORMONIO 0.045904
RRAS 0.043732
IBGEATEN 0.043044
RADIO 0.041206
delta_t5 0.040047
RADIOAPOS 0.038809
Name: RECDIST, dtype: float64
Fora de SP
[ ]:
df_fora.isna().sum().sort_values(ascending=False).head(6)
DTRECIDIVA 57799
delta_t6 57799
delta_t5 57799
delta_t4 57799
NAOTRAT 0
LOCALTNM 0
dtype: int64
[ ]:
corr_matrix = df_fora.corr()
abs(corr_matrix['RECDIST']).sort_values(ascending = False).head(20)
RECDIST 1.000000
RECNENHUM 0.579667
ob_com_rec 0.459205
vivo_com_rec 0.343707
vivo_sem_rec 0.202364
ano_ob 0.120521
QUIMIO 0.107406
ob 0.095742
CATEATEND 0.087712
ob_sem_rec 0.078666
LATERALI 0.073880
DIAGPREV 0.071119
ANODIAG 0.067613
RADIO 0.062403
RECLOCAL 0.050995
PERDASEG 0.047730
HORMONIO 0.046865
delta_t5 0.030107
DIAGTRAT 0.027065
delta_t2 0.027065
Name: RECDIST, dtype: float64
Divisão em treino e teste¶
[ ]:
df_SP.RECDIST.value_counts()
0 786768
1 19634
Name: RECDIST, dtype: int64
[ ]:
n_samples = 400000
df_SP_sem_rec = df_SP[df_SP.RECDIST == 0].sample(n_samples, random_state=seed).sort_index()
df_SP_rec = df_SP[df_SP.RECDIST == 1]
df_SP_menor = pd.concat([df_SP_rec, df_SP_sem_rec]).sort_index()
df_SP_menor.RECDIST.value_counts()
0 400000
1 19634
Name: RECDIST, dtype: int64
[ ]:
df_fora.RECDIST.value_counts()
0 61211
1 1106
Name: RECDIST, dtype: int64
[ ]:
list_drop = ['UFRESID', 'DTCONSULT', 'DTDIAG', 'DTTRAT', 'DTRECIDIVA', 'DTULTINFO',
'IDADE', 'PERDASEG', 'CONSDIAG', 'TRATCONS', 'DIAGTRAT', 'RECNENHUM',
'RECLOCAL', 'RECREGIO', 'REC01', 'REC02', 'REC03', 'REC04', 'delta_t4',
'delta_t5', 'delta_t6', 'delta_t7', 'delta_t8', 'delta_t9', 'ob', 'ano_ob',
'ob_com_rec', 'ob_sem_rec', 'vivo_com_rec', 'vivo_sem_rec', 'ULTINFO']
lb = 'RECDIST'
SP
[ ]:
X_trainSP, X_testSP, y_trainSP, y_testSP = get_train_test(df_SP_menor, list_drop, lb)
X_train = (314725, 62), X_test = (104909, 62)
y_train = (314725,), y_test = (104909,)
Fora de SP
[ ]:
X_trainFora, X_testFora, y_trainFora, y_testFora = get_train_test(df_fora, list_drop, lb)
X_train = (46737, 62), X_test = (15580, 62)
y_train = (46737,), y_test = (15580,)
Encoder e normalização¶
SP
[ ]:
X_trainSP_enc, enc_SP, norm_SP = train_preprocessing(X_trainSP, normalizer='StandardScaler')
Fora de SP
[ ]:
X_trainFora_enc, enc_fora, norm_fora = train_preprocessing(X_trainFora, normalizer='StandardScaler')
PCA¶
SP
[ ]:
pca = PCA()
principalComponents = pca.fit_transform(X_trainSP_enc)
fig = go.Figure()
fig.add_trace(
go.Scatter(
x=np.linspace(1, X_trainSP_enc.shape[0], X_trainSP_enc.shape[0]),
y=np.cumsum(pca.explained_variance_ratio_),
line_shape='hv',
))
fig.add_trace(
go.Bar(
x=np.linspace(1, X_trainSP_enc.shape[0], X_trainSP_enc.shape[0]),
y=pca.explained_variance_ratio_
))
fig.update_layout(yaxis_title='Variância que pode ser "explicada"', xaxis_title='Número de componentes principais')
fig.show()